个人常用vim操作以及插件

本文详细介绍了 Vim 编辑器的基础移动、插入、删除、修改、复制及粘贴等功能,并提供了丰富的 Ex 命令示例。此外还列举了多种实用插件及其指令,帮助用户提高 Vim 的使用效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.Vim的移动

粗体为常用
  1. 基础移动
    • h左 k 上 j下 l 右 前面可加数字
  2. 单词移动
    • w: 移动到下一个单词开头
    • e: 移动到下一个单词结尾
    • b: 移动到上一个单词开头
    • 前面可加数字
  3. 整行移动
    • 数字0: 移动到行首
    • $: 移动到行末
    • +: 移动到下一行开头
    • -: 移动到上一行开头
    • ^: 移动到行首非空位置
    • n|: 移动到第n列
  4. 滚屏
    • C-f: 往前滚一屏幕
    • C-b: 往后滚一屏幕
    • C-d: 往前滚半屏幕
    • C-u: 往后滚半屏幕
    • C-e: 往后滚一行
    • C-y: 往前滚一行
  5. 调整光标位置
    • z+enter: 顶端
    • z.: 中间
    • z-: 底端
    • 970z将970移到屏幕中间
  6. 屏幕中移动
    • H: 移动到屏幕顶端的行
    • M: 移动到屏幕中央的行
    • L: 移动到屏幕低端的行
    • nH: 屏幕顶端往下第n行
    • nL: 屏幕底端往上第n
  7. 根据文本快移动
    • (: 移动到当前句子开头
    • ): 移动到当前句子末尾
    • {:移动到当前这一段的开头
    • }:移动到当前这一段的末尾
    • [[:移动到当前这一节的开头
    • ]]:移动到当前下一节的开头
  8. 根据行号来移动
    • nG: 跳到第几行
    • G : 文件末尾
    • gg: 文件开头

二.插入

  1. 字符位置插入
    • i : 当前字符前插入
    • a : 当前字符后插入
  2. 行位置插入
    • A : 当前行行首插入
    • I : 当前行行末插入
    • o : 当前行下一行插入
    • O : 当前行上一行插入
    • tips:10i* <Esc> 行输入10个*
    •    :10o* <Esc> 列输入10个*
    •    :c-v选定行I输入ESC
  3. 合并行
    • J

三.删除(读作删除其实是剪切)

  1. 字符删除
    • x: 删除光标所在字符删除
    • X: 删除光标所在字符前删除
  2. 单词删除
    • dw: 删除到下一个单词开头
    • de: 删除到本单词末尾
    • dE: 删除到本单词末尾包括标点
    • db: 删除到前一个单词
    • dB: 删除到前一个单词包括标点
  3. 行删除
    • dd: 删除一整行
    • d$: 删除光标位置到本行结尾
    • d0: 删除光标位置到本行行首

四.修改

  1. 字符替换
    • r: 单个字符替换
    • R: 连续替换
    • ~: 更改大小写
  2. 单词修改
    • cw: 从光标处改到单词尾
    • cb: 从光标处改到单词头
  3. 行修改
    • c$ 或是 C: 从光标处修改到本行末尾
    • c0: 从光标处修改到单词头
    • cc 或是 S: 删除整行从头修改
    • s: 删除光标所在位置,然后插入

五.复制

  1. 粘帖

    • p: 粘帖
  2. 单词和字符复制

    • ynl: 向右复制n个字符
    • ynh: 向左复制n个字符
    • ynw: 向前复制n个单词
    • ynb: 向后复制n个单词
  3. 行复制
    • y0: 复制到行首
    • y$: 复制到行末
    • yy: 复制整行
    • yH: 从当前行复制到屏幕顶端
    • yL: 从当前行复制到屏幕低端

六.恢复

  1. 撤销与恢复
    • u:撤销
    • U: 撤销本行操作
    • c-r: 重做
    • .: 重复做上衣动作
    • e!: 全文回复

七.ex命令

  1. 保存命令补遗
    • :n r file 将file文件的内容加到当前文件n行号
    • := 打印总行号
    • /pattern/ 匹配到的第一个Pattern的位置,可替代行号使用
    • :[range]ya a pu a 拷贝到a储存器,将a放到新的文件中
  2. 范围及其操作
    • :n,m:n-m行 :.:当前行 :$:最后一行 :%:所有行
    • +/-n:前/后n行 +m,-n前m后n行
    • [range] d\y: 剪切 复制
    • [range] mv\co\t target
    • :n pu 把剪切板中的内容粘贴到第n行下面
  3. 多文件切换
    • :e file 编辑file文件
    • :p :n :last :前一个文件,下一个文件,最后一个文件
    • % 指代文件名 #前一个文件
    • :split :vsplit 切分打开文件
  4. 搜索
    • fx Fx: 单行移动到前一个/后一个字符x的位置
    • /pattern: 向后匹配第一个pattern位置,无pattern重复上一次
    • ?pattern: 向前同上
    • n\N: 向同一/逆方向继续匹配
    • *\#: 同上不过只匹配整个单词
  5. 组合Ex命令
    • |线:分割符
  6. 全局搜索
    • g/pattern/p\nu: 显示所有包含pattern的行nu表示打印行号
  7. g 和 s 指令例子
    • :g/^/m 0:匹配所有行扔到第一行(倒序文件)
    • :g/^/+1 d g/^/d|m.:删除偶数行,奇数行
    • :%s/.*/&\r&/ s/\(.*\)/\1\r\1/:double所有行
    • :g/^/t.: 同上
    • :%s/__.*\(__\)\@!/\ /g: @!不含前面一项的行
    • :%s/\n\n\@!/\ /g g/./,/^$/j: 删去单回车
    • :v/%s/s/:/\ /g: g和s联合使用
    • :g/ccc/if getline ('.') !~'ddd' | s/aaa/bbb/g
    • :g/#ifdef WIN32/+1,/#else|#endif/-1 t $:提取WIN32平台下代码到文件末尾

八.插件指令及其使用

  • vim-css-color: css中输入颜色和rgb会显示颜色
  • a.vim: 头文件跳转
    • :A,AS,AV,AT,AN:各种角度跳到头文件
    • :IH,IHS,IHV,IHT,IHN:各种角度跳到选定文件
  • minibufexpl.vim: 文件切换条
    • enter:打开一个文件 d:关闭一个
    • :bn :bp:打开上一个/下一个
    • :bnum:打开第几个标签
  • nerdtree(tabs): 浏览文件
    • o:打开文件 t:在新TAB打开 i,s:横切数切
    • I:显示隐藏 m:打开nerdmenu R:刷新
  • nerdcommenter:多行注释
    • \cc/cn: 多行注释
    • \cu: 多行去掉注释
    • \cs: 前面有*的注释
  • multiple-cursors:多行修改
    • c-n:多项选定修改 i进入修改mod
  • ctrlp: c-p 模糊搜索当前文件并打开
  • easy_motion: s+2字符快速搜索
  • vimproc vimshell: :VimShell 打开vimshell
  • 补全:
    • youcompleteme
    • neocomplcache.vim
    • vim-snippet neosnippet neosnippet-snippets ultisnips
  • 整体语法美化:
    • vim-indent-guides:语法对齐 \ig开启
    • vim-better-whitespace:无效空格提醒
    • syntastic: 错误提醒
    • tagbar: ctags
  • 语言语法:
    • haskel:vim-hdevtools, ghcmod-vim, necos-ghc, hlint
    • clojure:vim-clojure-staticm, vim-fireplace
    • go: vim-go
    • jade:vim-jade
    • closure template: vim-soy
    • coffeescript: vim-coffee-script
    • swift.vim: swift
    • commonlisp: vim-slime slimv
    • laTeX: vimtex
    • cjsx: vim-cjsk
    • rails: vim-rails
    • qucik-scope: f命令(行内搜索)高亮
  • 主题美化相关:vim-colors-solarized,vim-airline, vim-hybird, molokai
  • 其他
    • vim-fugitive: 显示git信息

九.附录

  1. 匹配符
    • .: 匹配任何除换行符外的单个字符
    • \s: 匹配一个空白符(space或tab)
    • \S: 一个非空白符
    • ^: 仅匹配行首,也即必须以模式开头
    • $: 仅匹配行尾,也即必须以模式结尾
    • \<: 匹配词首,单词定义为一连串的字母,标点空白和数字均视为分隔符
    • >: 匹配词尾。
    • \<…>: 匹配整个单词(前面命令中的*和#就是用这个来只匹配单词)。当然\<和>不必一起使用,可以分开使用
  2. 限量符
    • *: 前一个字符出现0次或多次,如a*,可以匹配”, ‘a’, ‘aa’或’aaa’等
    • +: 前一个字符出现1次或多次
    • \=: 前一个字符出现0次或1次
    • {n,m}: 前一个字符出现n到m,如a\{3,5},则可以匹配’aaa’, ‘aaaa’或’aaaaa’
    • {n}: 前一个字符出现n次
    • {n,}: 前一个字符出现n次到最多次数(32000)
    • {}: 0次或多次,与*一致
  3. 操作符
    • |:或操作符
  4. 其他匹配符
    • […]: [a-zA-Z]
    • …:
    • \n:
### Vim 常用插件列表 对于希望提升工作效率的开发人员来说,Vim 的强大之处在于其丰富的插件生态系统。以下是几个常用Vim 插件: - **NERDTree**: 文件系统的浏览器插件,允许用户通过树状视图浏览文件夹和文件[^2]。 - **vim-airline**: 提供了一个轻量级的状态栏,显示当前模式、行号和其他有用的信息。此状态栏具有高度可配置性和主题支持功能[^3]。 - **YouCompleteMe (YCM)**: 代码补全引擎,支持多种编程语言并提供智能感知特性。它能够显著提高编写代码的速度与准确性。 - **Syntastic 或 ALE**: 这些都是语法检查工具,在保存文件时自动运行相应的编译器或解释器来检测错误,并标记出错位置以便快速修正。 - **CtrlP**: 快速打开任意文件、缓冲区以及标签页等功能,极大地方便了资源定位操作。 - **Surround.vim**: 方便地添加、删除和修改括号、引号等包围字符,简化文本编辑过程中的常见任务处理。 ### Vim 基础配置方法 为了更好地利用上述提到的各种优秀插件,合理的初始化设置至关重要。下面是一份简单的 `.vimrc` 配置示例,用于开启一些基本特性和加载所需扩展包: ```vim " 设置编码格式为 UTF-8 set encoding=utf-8 " 启用行号显示 set number relativenumber " 使用空格代替制表符,默认宽度设为4个单位长度 set expandtab shiftwidth=4 softtabstop=4 tabstop=4 " 开启鼠标支持 set mouse=a " 自动缩进匹配上一行风格 filetype plugin indent on " 加载 Vundle 管理器(需预先安装) call vundle#begin() Plugin 'gmarik/Vundle.vim' Plugin 'scrooloose/nerdtree' " NERDTree 插件实例 Plugin 'vim-airline/vim-airline' " vim-airline 插件实例 ... call vundle#end() " 让每次启动都更新插件库索引 autocmd BufEnter * if &ft != '' | PlugInstall --sync | qall ``` 以上仅作为入门指南的一部分内容;随着个人需求的增长和技术水平的进步,可以逐步探索更多高级选项来进行个性化调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值