您现在的位置是:首页 > 编程 > 

Linux vim

2025-07-18 14:59:59
Linux vim 一、Vim的详细介绍 1.1 Vim的历史与背景 Vim(Vi Improved)是基于Vi编辑器开发的增强版。Vi由Bill Joy于1976年为Unix系统创建,而Vim由Bram Moolenaar在1991年首次发布,最初是为了改进

Linux vim

一、Vim的详细介绍

1.1 Vim的历史与背景

Vim(Vi Improved)是基于Vi编辑器开发的增强版。Vi由Bill Joy于1976年为Unix系统创建,而Vim由Bram Moolenaar在1991年首次发布,最初是为了改进Vi的功能并使其适用于更多场景。Vim不仅保留了Vi的高效性和轻量化,还增加了脚本支持、多级撤销、语法高亮等功能。如今,Vim已成为Linux用户、程序员和系统管理员的标配工具,尤其在无图形界面的服务器环境中表现出。

1.2 Vim的核心优势

  • 模态设计:通过区分导航(正常模式)和编辑(插入模式),减少了操作冗余。
  • 键盘效率:所有功能通过快捷键实现,双手无需离开键盘。
  • 可定制性:支持脚本语言(Vimscript)和插件,满足个性化需求。
  • 资源占用性:即使在低配服务器上也能流畅运行。

1. Vim的安装与验证

在Linux系统中,Vim通常默认安装,但可能是精简版(vim-tiny)。若需完整版:

  • Debian/Ubuntusudo apt install vim
  • Fedorasudo dnf install vim-enhanced
  • Archsudo pacman -S vim
  • 验证版本:vim --version,检查是否支持特性如python(插件支持)。

启动方式

  • vim:空白编辑器。
  • vim :编辑指定文件。
  • vim -R :只读模式。
  • vim 10 :打开文件并跳转到第10行。
二、Vim的基础操作详解

2.1 Vim的模式详解

Vim的模态设计是其核心,以下是每种模式的详细说明:

  1. 正常模式(ormal Mode)
    • 默认进入模式,用于导航、删除、复制等。
    • 进入方式:启动Vim后默认,或从其他模式按Esc
    • 示例:移动光标(h/j/k/l)、删除行(dd)。
  2. 插入模式(Insert Mode)
    • 用于输入文本。
    • 进入方式:i(光标前插入)、I(行首插入)、a(光标后插入)、A(行尾插入)、o(下行插入)、O上行插入。
    • 示例:按i输入Hello,按Esc返回正常模式。
  3. 可视模式(Visual Mode)
    • 用于选择文本
    • 进入方式:
      • v:字符选择
      • V:行选择
      • Ctrlv:块选择
    • 示例:按v,用h/l选择字符,按d删除。
  4. 命令模式(Command Mode)
    • 用于执行复杂命令,如保存、退出、设置选项。
    • 进入方式:从正常模式按:
    • 示例::set nu(显示行号)、:w(保存)。

2.2 基本导航

  • 光标移动
    • h/j/k/l:左/下/上/右
    • w:下一个单词开头,b:上一个单词开头,e:单词结尾
    • 0:行首,^:第一个非空字符,$:行尾。
    • gg:文件开头,G:文件结尾,10G:第10行。
  • 翻页
    • Ctrlf:下一页,Ctrlb:上一页。
    • Ctrld:下一页,Ctrlu:上半页。

2. 文本编辑

  • 插入i/a/o(如上所述)。
  • 删除
    • x:删除光标下字符,X:删除光标前字符。
    • dd:删除整行,dd:删除行。
    • dw:删除到单词结尾,d$:删除到行尾。
  • 修改
    • r:替换光标下字符(如ra将当前字符替换为a)。
    • c:删除并进入插入模式(如cw)删除单词并插入。
  • 撤销与重做
    • u:撤销上一次操作。
    • Ctrlr:重做。

2.4 文件操作

  • :w:保存。
  • :w new:另存为。
  • :q:退出。
  • :q!:强制退出不保存。
  • :wqZZ:保存并退出。
三、具体示例

示例1:创建一个配置文件

假设我们要创建一个简单的Bash脚本myscript.sh

  1. 启动Vim:vim myscript.sh

  2. 进入插入模式:i

  3. 输入以下内容:

    #!/bin/bash
    echo Hello,Vim !
    for i in {1..5};do
    	echo Line $i
    done
    
  4. 返回正常模式:Esc

  5. 保存并退出:wq

示例2:修改多行内容

打开myscript.sh,假设需要将Line改为Row

  1. 搜索:/Line
  2. 替换:
    • 当前行::s/Line/Row
    • 全局::%s/Line/Row/g
  3. 保存::w

示例:块操作

假设文件内容如下:

ame: Alice
Age: 25
City: ew York

将值对其:

  1. 进入块可视模式:Ctrlv
  2. 移动光标选择Alice25ew York的开头。
  3. I,输入空格(对齐),按Esc
四、高级用法详解

4.1 多窗口与标签页

  • 窗口管理
    • :sp :水平分割打开新文件
    • vsp :垂直分割
    • Ctrlw w:循环切换窗口
    • Ctrlw c:关闭当前窗口
  • 标签页管理
    • :tabnew :新标签页
    • tabclose:关闭当前标签
    • tabn:下一标签,:tabp:上一标签
  • 示例:同时编辑个文件:
    1. vim
    2. :sp
    3. tabnew

4.2 搜索与替换

  • 高级搜索
    • /\<word\>:精确匹配单词
    • /pattern\c:忽略大小写
  • 高级替换
    • :%s/old/new/gc:每次替换需确认
    • :%s/\(\d\\)/\11/g:将数字加1(正则捕获组)
  • 示例:将test1 test2 test改为Test1 Test2 Test
:%s/\(\w\\)/\u\1\g

4. 宏录制与批量操作

  • 详细步骤

    1. qa:录制寄存器a
    2. 执行操作(如I# Esc j)。
    3. q:结束。
    4. 5@a:对5行执行。
  • 示例:为10行文本添加行号:

    1. 文件内容:
    apple
    banana
    cherry
    
    1. qa->I1. Esc j->q
    2. j qa->I2. Esc j->q
    3. 手动重复,或用脚本优化。

4.4 自定义配置(.vimrc)

详细配置示例:

set number relativenumber   显示绝对和相对行号
set tabstop=4 shiftwidth=4 expandtab   Tab为4空格
set hlsearch incsearch      高亮搜索,增量搜索
set ignorecase smartcase    搜索大小写智能处理
syntax enable               语法高亮
colorscheme desert          设置主题
nnoremap <F5> :w<CR>:!python %<CR>   F5运行Python文件

4.5 插件生态

  • 安装vim-plug
  • 推荐插件:
    • ERDTree:文件浏览器(:ERDTreeToggle)。
    • vim-surround:快速包围文本(如ysiw加引号)。
    • fzf.vim:模糊搜索(:Files)。
  • 示例:安装ERDTree:
    1. .vimrc添加Plug scrooloose/nerdtree
    2. :PlugInstall
五、实战场景

5.1 编程支持

  • 代码折叠
    • zf:折叠选中区域。
    • zo:展开,zc:关闭。
  • 语法检查:安装ALE插件(Plug dense-analyse/ale )。

5.2 日志分析

  • 搜索错误/ERROR
  • 过滤行:g/ERROR/p

5. 配置管理

  • 编辑,用:%s/listen 80/listen 8080/g批量修改端口。
六、总结

Vim的强大在于其灵活性和高效性。通过基础操作的熟练掌握、高级功能的活用以及个性化配置,用户可以在Linux环境下极大提升工作效率。

更多技术分享,关注:halugin

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1126727.html

相关标签:无
上传时间: 2025-07-18 09:44:48
留言与评论(共有 13 条评论)
本站网友 警校招生
29分钟前 发表
示例:安装ERDTree: 在.vimrc添加Plug scrooloose/nerdtree
本站网友 广州公寓出租
1分钟前 发表
可视模式(Visual Mode): 用于选择文本进入方式: v:字符选择V:行选择Ctrlv:块选择 示例:按v,用h/l选择字符,按d删除
本站网友 md5验证工具
6分钟前 发表
%s/old/new/gc:每次替换需确认
本站网友 北约组织
17分钟前 发表
set nu(显示行号)
本站网友 中国军魂
15分钟前 发表
%s/\(\w\\)/\u\1\g 4. 宏录制与批量操作 详细步骤: qa:录制寄存器a
本站网友 滴虫性阴炎
0秒前 发表
vim 10 :打开文件并跳转到第10行
本站网友 3p3
20分钟前 发表
若需完整版: Debian/Ubuntu:sudo apt install vimFedora:sudo dnf install vim-enhancedArch:sudo pacman -S vim验证版本:vim --version,检查是否支持特性如python(插件支持)
本站网友 大肠杆菌培养
1分钟前 发表
PlugInstall 五
本站网友 rotate3d
25分钟前 发表
示例:移动光标(h/j/k/l)
本站网友 小米手机维修
18分钟前 发表
插入模式(Insert Mode): 用于输入文本
本站网友 跑赢大盘
29分钟前 发表
本站网友 大宗商品定价权
20分钟前 发表
vim-surround:快速包围文本(如ysiw加引号)