vim常用快捷键

来源:互联网 发布:其言兹若人之俦乎的其 编辑:程序博客网 时间:2024/06/05 14:14

vi命令是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。Linux中的vi编辑器叫vim,它是vi的增强版(vi Improved),与vi编辑器完全兼容,而且实现了很多增强功能。

工作模式

Vim编辑器共有两种工作模式,一个是插入模式,一个是命令模式。

  • 插入模式

用来编写文本内容。在命令模式下, 按字母i键即可进入到插入模式。


  • 命令模式

是用来编辑文本,如上下翻页等,复制粘贴,跳转到指定行等操作。在插入模式下,按Esc键,再按冒号:键即可进入命令模式。


当前编辑的顶部或者底部会显示vim处于何种模式下。如:mode:COMMAND!

所有命令都必须在英文输入法下面输入
命令对大小写敏感

打开/保存/退出

  • 进入
123
//filename,若已经存在则打开已存在的文件,不存在则新建一个文件//默认开始进入的模式是命令模式$ vi filename
  • 保存/退出

进入命令模式,

1234567
:wq              保存修改并退出ZZ               快捷键,保存修改并退出(前面没有冒号):q!              不保存退出:wq!             强行保存退出,(文件所属者科忽略文件的制度属性):w               保存不退出:wqa             保存所有文件:w new_filename  另存为指定文件

编辑

  • 插入
123456
a                     在光标后附加文本A                     在本行行末附加文本i                     在光标前插入文本I                     在本行开始插入文本o (字母)               在光标下插入新行O (字母)               在光标上插入新行
  • 剪切复制粘贴
12345678
yy、Y                         复制当前行nyy,nY                       复制当前行一下n行(包括当前行)p、P                          粘贴在当前光标所在行下或行上ddp                          交换当前行和其下一行dd                           剪切当前行ndd                          剪切当前行一下n行(包括当前行):1,10d                       将1-10行剪切。利用p命令可将剪切后的内容进行粘贴。:1, 10 m 20                  将第1-10行移动到第20行之后。
  • 删除
12345678910
x                     删除后面的字符 X                     删除前一个字符  删除3个字符就是3x  dd                    删除一行   D                     删除到行尾 dw                    删除一个单词(光标后部分)      d4w                   删除4个单词    d$                    删除当前光标到行尾    d^                    删除当前光标至行首J                     删除换行符,使下一行并上来。     nJ                    连接后面的n行
  • 撤销
1234
u                         取消上一步操作(最多连续取消500次)Ctrl+r                    恢复上一步被撤销的操作U                         撤销当前一行的操作:e!                       返回上次保存后的状态

定位

123456789101112131415161718192021222324252627282930313233343536373839404142
h、方向左键              左移一个字符j、 方向下键             下移一行k、方向上键              上移一行l、 方向右键             右移一个字符$                       移至行尾0                       移至行首^(尖角号)                移至行首H                       移至屏幕上端M                       移至屏幕中央L                       移至屏幕下端(                        (左小括号)移动到上一个句子首)                        (右小括号)移动到下一个句子首{                        (左大括号)移动到上一个段落首}                        (右大括号)移动到下一个段落首''                       (连续输入法两个单引号)光标跳转到上次停靠处W                        移动到下一个单词的首位置w                        将光标右移一个单词的首位置。光标停留在下一个单词的首位置e                        移动到单词末尾。E                        和小写用法一样,只是以空格字符作为字的分隔符b                        移动到单词的头部B                        和小写用法一样,只是以空格字符作为字的分隔符//w W e E b B 都可以与n结合使用, n为数量单位, 如nw nW ne nE nb nB:set nu                      设置行号为显示:set nonu                    设置行号为隐藏:set nu!                     设置行号为显示/隐藏gg                           光标移动到第一行G                            光标移动到最后一行nG                           光标跳转到指定行    :n                           光标跳转到指定行Ctrl + e                 向下滚动一行Ctrl + y                 向上滚动一行Ctrl + d                 向下滚动半屏Ctrl + u                 向上滚动半屏Ctrl + f                 向下滚动一屏Ctrl + b                 向上滚动一屏zz:将当前行滚动于屏幕中间,方便查看上下文  zt置顶,zb置尾

查找

12345678910111213141516171819202122232425262728293031323334
//在command模式下,通过按  f 或者 F   快速定位内容。(不需要输入冒号)f                            向后查找F                            向前查找//可以结合数字来进行多次查找,如按下  3fq   ,就会放下查找第三个q//如果不加数字,如fq,就会向后查找第一个q*                            向后查找, 查找与光标下的词组相同的词组。#                            向前查找, 查找与光标下的词组相同的词组。//举例:假设光标停留在第一个if处//if  we are god   if you are human//我们在command模式下,输入  *  ,光标就会跳到“if you are human”的那个if上去//查找string,回车后,按n键可以跳到下一个,N上一个,//?另外按/键后,按上下键可以找到以前查找的记录,同样的 :也有记录/string     //同上,默认向上查找    ?string  :set ignorecase          大小写无关:set noignorecase        大小写敏感:set hlsearch            高亮显示查找结果:set nohlsearch          取消高亮:nohlsearch              去掉当前显示的高亮(一次性)

替换

1234567
r                         (小写)替换光标所在处一个字符R                         (大写)开始替换,直到按ESC键退出替换,cc                        (小写)取代光标所在整行S                         (大写)与ss(小写)效果相同C                         (大写)取代到行尾,包括光标处字符c0                        (小写,数字0)取代到行首,不包括光标处字符c^                        (小写)与c0(小写,数字0)效果相同

参考文献

  • 我个人精心收集的必须熟悉的vim快捷键操作
  • vim 常用快捷键
原创粉丝点击