vim高级学习

[TOC]

vim常用操作命令及快捷键,欢迎一起补充完善~

一、打开、保存、关闭文件

  • :w 保存文件
  • :w vpser.net 保存至vpser.net文件
  • :q 退出编辑器,如果文件已修改请使用下面的命令
  • :q! 退出编辑器,且不保存
  • :wq 退出编辑器,且保存文件

二、保存文件

  • :w 要保存文件路径 可以保存文件到指定路径下

三、移动

3.1、字符间跳转

  • j 下移一行
  • k 上移一行
  • h 左移一个字符
  • l 右移一个字符
  • 空格键 向右
  • Backspace 向左
  • Enter 移动到下一行首
  • - 移动到上一行首
  • shift + 6 跳转到行首
  • shift + 4 跳转到行尾

3.2、单词间跳转

  • w:跳转至下一个单词或后一个单词的词首
  • e:跳转至当前或下一个单词的词尾
  • b:跳转至当前或上一个单词的词首
  • #COMMAND 由#指定一次跳转的单词数

四、跳转

  • n+ 向下跳n行
  • n- 向上跳n行
  • nG 跳到行号为n的行
  • gg 跳转到文件头
  • shift + g 跳转到文件末尾
  • G 跳至文件的底部
  • :n 代表跳转到第n行,如:79 就跳转到第79行

五、设置行号

  • :set nu 显示行号
  • :set nonu 取消显示行号

六、翻屏

  • ctrl + f 下翻一屏
  • ctrl + b 上翻一屏
  • ctrl + d 下翻半屏
  • ctrl + u 上翻半屏
  • ctrl + e 向下滚动一行
  • ctrl + y 向上滚动一行

七、插入

  • a 在当前光标位置的右边添加文本
  • i 在当前光标位置的左边添加文本
  • A 在当前行的末尾位置添加文本
  • I 在当前行的开始处添加文本(非空字符的行首)
  • O 在当前行的上面新建一行 OR shift + o
  • o 在当前行的下面新建一行
  • R 替换(覆盖)当前光标位置及后面的若干文本
  • J 合并光标所在行及下一行为一行(依然在命令模式)

八、删除、恢复

  • x 删除当前字符
  • nx 删除从光标开始的n个字符
  • dd 删除当行
  • ndd 向下删除当前行在内的n行
  • dw 从光标当前的位置开始删除,直到删到单词最后
  • daw deletea a word 删除一整个单词
  • u 撤销上一步操作
  • ctrl + r 恢复上一步被撤销的操作
  • U 撤销对当前行的所有操作

8.1、跨行多字符删除

  • v (visual)模式,jkhl跨行选中字符
  • shift + 4/6 光标到行尾/首
  • d 删除

九、查找

  • 光标停留在单词字母上,输入 shift + * 可快速选中该单词,通过n或者N进行上一个或下一个的匹配
  • shift+4/6 行首/尾
  • shift+{/} 代码块首/尾

十、复制/粘贴

10.1、基本复制

  • yy 将当前行复制到缓冲区,也可以用'ayy'复制,a为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务
  • nyy 将当前行向下n行复制到缓冲区,也可以用 "anyy 复制,"a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务
  • yw 复制从光标开始到词尾的字符
  • nyw 复制从光标开始的n个单词
  • y^ 复制从光标到行首的内容
  • y$ 复制从光标到行尾的内容
  • p 粘贴剪切板里的内容在光标后,如果使用了前面的自定义缓冲区,建议使用"ap 进行粘贴
  • P 粘贴剪切板里的内容在光标前,如果使用了前面的自定义缓冲区,建议使用"aP 进行粘贴
  • v进入待处理,yy复制,p粘贴
  • v进入待处理,shift + 4 行尾 选中行内容进行复制;shift + 6 行首 选中行内容进行复制

10.2、复制列

  1. ctrl+ v 按列选
  2. jk选中多列
  3. 大A(shift+a)向后修改;shift+I向前修改;d删除列
  4. esc 退出

10.3、全选

  1. ggvG 全选
  2. shift + v 或者V 可以快速选中一行
  3. gv 回到之前选中的文本块

10.4、选择一个单词

快速选中一个单词,按v按e即可

十一、替换

表达式:[range]s/from/to/[flags]

  • :s/old/new 用new替换行中首次出现的old
  • :s/old/new/g 用new替换行中所有的old
  • :n,m s/old/new/g 用new替换从n到m行里所有的old
  • :%s/old/new/g 用new替换当前文件里所有的old

11.1、例子

  1. :1,10s/from/to/ 表示在第1到第10行(包含第1,第10行)之间搜索替换;
  2. :10s/from/to/ 表示只在第10行搜索替换;
  3. :%s/from/to/ 表示在所有行中搜索替换;
  4. 1,$s/from/to/ 同上

十二、搜索

  • /vpser //向光标下搜索vpser字符串,vpser可以是正则表达式
  • ?vpser //向光标上搜索vpser字符串
  • n //向下搜索前一个搜素动作
  • N //向上搜索前一个搜索动作
  • *(#) //当光标停留在某个单词上时, 输入这条命令表示查找与该单词匹配的下(上)一个单词. 同样, 再输入 n 查找下一个匹配处, 输入 N 反方向查找.
  • g*(g#) //此命令与上条命令相似, 只不过它不完全匹配光标所在处的单词, 而是匹配包含该单词的所有字符串.
  • ^search 要查找仅出现在行首的search
  • search$ 要查找仅出现在行尾的search

十三、编辑其他文件

  • :e otherfilename 编辑文件名为otherfilename的文件

十四、修改文件格式

  • :set fileformat=unix 将文件修改为unix格式,如win下面的文本文件在linux下会出现^M

十五、查找帮助

当你不知道怎么处理时,直接输入help可以看到帮助文档的起点,ZZ是退出或者:q,不建议使用
查找关于某个字母的命令 :help x 查找关于x的命令。

十六、参考

  • 编辑器之神-VIM

你可能感兴趣的:(vim高级学习)