vim 常用命令

[TOC]

VIM常用命令与技巧-总结

VIM 基础

首先我们需要安装vim,然后使用她打开一个文档,启动vim后,vim工作在“普通模式(Normal)”下,这个时候其不能输入任何东西,当我们按下键 i 时,就进入了“ Insert 模式”,此时vim左下角有一个–insert/插入–字样,现在你先要学习下面命令,让你能正常使用vim.

命令 功能
i Insert 模式,按 ESC 回到 Normal 模式.
x 删当前光标所在的一个字符。normal模式使用
dd 删除当前行,并把删除的行存到剪贴板里,normal模式使用
p 粘贴剪贴板,normal模式使用
hjkl 在normal模式下,分别代表←↓↑→,normal模式使用
:wq 存盘 + 退出,:w 存盘, :q 退出

高频命令

  • 删除从光标位置到单词结尾之间的字符并进入插入模式:cw
  • 删除光标所在单词并进入插入模式:ciw,删除光标所在位置的单词及空格:daw
  • 高亮选中标签内部的内容:vit
  • 正向移动到下一单词的开头:w,反向移动到当前单词 / 上一单词的开头:b
  • 移动到当前行的第 n 列:n|
  • 重绘屏幕并把当前行显示在窗口正中:zz
  • 将光标所在行移到窗口的顶端:zt,将光标所在行移到窗口的底部:zb
  • Vim 跳转位置前进:,跳转位置后退:,类似浏览器的前进后退功能
  • 回到上次跳转的位置:”,回到上次编辑的位置:’.
  • 重复执行上次的 Vim 命令行模式命令:@:
  • 查看 Vim 当前打开文件的文件名、位置信息和状态等: (同时按下 Ctrl 键和 g 键)
  • Vim 命令行模式下,% 表示当前活动缓冲区对应文件的完整文件路径
  • 不离开插入模式,粘贴寄存器中的文本:{register} ({register} 是我们想要插入的寄存器的名字)
  • 重选上一次由可视模式所选择的文本范围:gv
  • 在 Vim 可视化模式下高亮选中区域后按下 : 键,命令行上会预先填充一个范围 :'<,’> 代表高亮选区的范围
  • 把任意寄存器的内容插入到命令行::{register}
  • 插入模式下同时按下 ,再输入 = 后,输入任意算数式 (如 333*2),回车,即可看到运算结果 (这是使用了 Vim 表达式寄存器 "=)
  • 只读寄存器 "% 表示 Vim 当前活动文件缓冲区的文件名,在 Vim 插入模式下,按 % 可将当前文件名输入到文件中
  • 把光标所在当前单词插入 Vim 命令行:
  • 光标所在行用 . 表示,文件的最后一行用 $ 表示,% 整个文件 (:1,$ 的简写形式)
  • 删除当前光标到本行行尾的所有内容:d$,删除当前光标到本行行首的所有内容:d0
  • 删除所有行:dG 或 :%d
  • 调换 Vim 当前光标之后的两个字符的顺序:xp
  • 当前行自动缩进对齐 (又称自动格式化):==,当前文件所有行自动缩进对齐:gg=G
  • 正向移动到下一个 {char} 所在之处的字符上:f{char},正向移动到下一个 {char} 所在之处的前一个字符上:t{char}
  • Vim 普通模式下 ; 命令会重复查找上次 f 命令所查找的字符
  • Vim 分屏后增加某个屏幕的高度:+ (先同时按下 Ctrl 键和 w 键,再按下 + 键)
  • 把多个标签页中的所有文件中的单词 food 都替换成 drink,可以使用 tabdo 命令::tabdo %s/food/drink/g
  • 临时退出插入模式,执行单条命令又返回插入模式:
  • 修改当前光标所在字符为 a:ra
  • 将单词转成大写:gUiw,将当前单词转成小写:guiw
  • 另存为文件::saveas
  • 读取文件并将内容插入到光标后::r
  • 回退到 15 分钟前的文件内容::earlier 15m
  • vim 跳回上次修改光标的位置及反向操作:双击 ': 光标退回到上次停留的位置;ctrl-o : 光标退回到更早停留的位置;ctrl-i : 跳回到停留光标的更新位置

同行查找

如果我们想在当前行内快速移动到指定字符 ,可以使用f, t, F, T命令。这四个命令只在当前行中移动光标,光标不会跨越回车换行符。

  • f 命令移动到光标右边的指定字符上,例如,”fx“,会把移动到光标右边的第一个’x’字符上。
  • F 命令则反方向查找,也就是移动到光标左边的指定字符上。
  • t 命令和”f“命令的区别在于,它移动到光标右边的指定字符之前。例如,”tx“会移动到光标右边第一个’x’字符的前面。
  • T 命令是”t“命令的反向版本,它移动到光标右边的指定字符之后。

可以在命令前面使用数字,表示倍数。例如,”3fx“表示移动到光标右边的第3个’x’字符上。
; 命令重复前一次输入的 f, t, F, T 命令,
, 命令会反方向重复前一次输入的f, t, F, T命令。
这两个命令前也可以使用数字来表示倍数。

高亮搜索

set hlsearch

撤销与重做

  • 撤销(undo):normal 模式下,按u进行撤销操作。如果需要进行多次撤销(例如需要退回到3次修改以前),可以按3 u
  • 重做(redo):normal 模式下,按CTRL-R来进行重做操作。当然也可以通过键入:red或者:redo来进行重做。

列操作

删除列

  • 光标定位到要操作的地方。
  • CTRL+v 进入“可视 块”模式,选取这一列操作多少行。
  • d 删除。

粘贴列

选择插入的列后,直接y复制,然后到相应的列中p,粘贴。

搜索

统计字符串出现的次数

统计m到n行中"字符串"出现的次数

:m, ns/字符串//gn

参考

Was this helpful?

0 / 0

发表回复 0