Linux随笔第五篇(更新中)

                    Linux之vim总结

1.vim的模式

  • 正常模式:可以使用快捷命令。
  • 插入模式:可以进行文本编辑。
  • 可视模式:正常模式下按v进入,移动光标可以选择内容;正常模式下按V进入可视行模式,这个模式是整行整行的选择;
  • 替换模式:正常的模式下按R进入,可以替换内容。

2.vim的打开

  1. vim -r 文件名:恢复上一次异常退出的文件。
  2. vim -R 文件名:文件以只读的方式进行打开。(可以进行强制保存)
  3. vim -M 文件名:文件以只读的方式进行打开。(不可以进行强制保存,也就是没法进行任何修改)
  4. vim + 文件名:从文件的末尾开始。
  5. vim +数字 文件名:打开文件后光标在第几行。
  6. vim +/字符串 文件名:打开文件之后,会把找到的所有字符串进行标亮,光标会停留在第一个匹配到字符串的位置。

3.vim打开后文档的操作

  1. :e 文件名:关闭当前的文件打开新的文件,如果本文件没有进行保存,vim会报警提示。
  2. :e! 文件名:放弃对本文档的修改并打开新的文档。
  3. :e + 文件名:打开新的文件并从文件的末尾进行编辑。
  4. :e + 数字 文件名:打开新文件并在第N行进行编辑。
  5. :enew:打开一个新的未进行命名的文档。
  6. :e!:从新加载当前的文档并舍弃以进行修改的动作。
  7. :e#或者CTRL+^:回到刚才编辑的文档。
  8. :f或者CTRL+g:显示文档的名称,是否进行修改和光标的位置。
  9. :f 文件名:改变编辑的文件名,这个时候保存就是另存。
  10. :w:保存修改。
  11. :行数1,行数2w 文件名:保存本文件中行数1到行数2中的内容到新的文件中。
  12. :wq:保存并退出。
  13. :ZZ:保存并退出。
  14. :x:保存并退出。
  15. :q:退出当前窗口。(CTRL-w q)
  16. :saveas 新的文件名:另存为。
  17. :set nu:可以显示文本行号。
  18. set nonu:可以取消文本行号。
  19. :set (no)ai:可以开启智能换行或者取消。
  20. vimdiff:可以对比两个文件的差异性。
  21. :diffof:取消两个文件的差异对比。
  22. :pwd:显示当前文件所在的位置。

4.vim中光标的移动

  1. h或者退格:向左移动一个字符;l或者空格:向右移动一个字符;j:向下移动一个字符;k:向上移动一个字符。
  2. gj:移动到一段内的下一行;gk:移动到一段内的上一行。
  3. +或者enter:把光标移动至下一行第一个空白的字符。
  4. w:向前移动一个单词,光标停留在下一个单词的开头;W:和w的作用差不多,但是会忽略一些标点。
  5. e:向前移动一个单词,光标停留在下一个单词的末尾;E:和e的作用差不多,但是如果有标点会移动到标点。
  6. b:向后移动一个单词,光标停留在上一个单词的开头;B:和b的作用差不多,但是会忽略一些标点。
  7. ge:后移一个单词,光标停留在上一个单词的末尾;gE:同ge,但是包含单词相邻的标点。
  8. (:前移1句;):后移1句;{:前移一段;}:后移一段。
  9. ^:移动到本行第一个非空白字符;g^:和^作用差不多,但是是移动到当前屏幕行第一个非空白字符。
  10. $:移动到行尾;数字|:把光标移动到数字列上;数字G:文件的第数字行;:数字:移动到第数字行;:$:移动到最后一行;
  11. H:光标移动到屏幕最顶端一行;M:光标移动到屏幕中间一行;L:光标移动到屏幕最低端一行。
  12. gg:到文件头;GG:到文件的尾
  13. CTRL+e:向下滚动一行;CTRL+y:向上滚动一行;
  14. zz:将当前行移动到屏幕的中央;zt:将当前行移动到屏幕顶端;zb:将当前行移动到屏幕底部。

5.文本的插入

  1. i:再光标前插入;I:再当前行第一个非空字符前插入;gl:再当前行第一列插入;
  2. a:在光标后插入;A:在当前行最后插入;o:在下面新建一行进行插入;O:在上面新建一行进行插入。
  3. :r 文件名:在当前文件中插入另一个文件的内容。
  4. :数字r 文件名:在第数字行插入另一个文件的内容。(如果改行有内容就在下一行进行插入)
  5. :r !date:在光标处插入当前的日期和时间;:r !命令:可以把命令结果插入。
  6. c[数字n]w:修改光标后n个词。
  7. c[数字n]l:修改光标后n个字母。
  8. c[数字n]h:修改光标前n个字母。
  9. [数字n]cc:修改当前n行。

6.文本的复制和粘贴

  1. [数字n]x:剪切光标右边n个字符,相当于d[数字n]l。[数字n]X:剪切光标左边n个字符,相当于d[n]h。
  2. y:复制可视模式下选中的文本。
  3. yy或者Y:复制整行的文本。
  4. y[数字n]w:复制n个词。y[数字n]l:复制光标右边n个字符。y[数字n]h:复制光标左边n个字符。
  5. y$:从光标当前位置复制到行尾。
  6. y0:从光标当前位置复制到行首。
  7. :m,ny:复制m到n行。ygg:复制光标以上所有的行。yG:复制光标一下所有的行。
  8. d:删除在可视模式下选中的文本。
  9. d[数字n]w:删除n个单词。d[数字n]l:删除光标右边n个字符。d[数字n]h:删除光标左边n个字符。
  10. d$:删除当前位置到行尾的内容。d0:删除当前位置到行首的内容。[数字n]dd:删除n行。
  11. :m,nd:三处m到n行的内容。dgg:删除光标以上所有的行。dG:删除光标一下所有的行。
  12. p: 在光标之后粘贴。P: 在光标之前粘贴。

注意:as:一个词;aw:一句。ap:一段。ab:一块(包括在圆括号中的)。y,d,c,v都可以跟。

7.文本查找和替换

  1. /查找内容:在后面的文本中查找内容。
  2. n:向后查找。N:向前查找。
  3. :s/旧的/新的:用新的替换当前行第一个旧的。
  4. :s/旧的/新的/g:用新的替换当前行所有的旧的。
  5. :n1,n2s/old/new/g :用new替换文件n1行到n2行所有的old。
  6. :%s/old/new/g :用new替换文件中所有的old。
  7. :%s/^/xxx/g :在每一行的行首插入xxx,^表示行首。
  8. :%s/$/xxx/g :在每一行的行尾插入xxx,$表示行尾。

注意:所有替换命令末尾加上c,每个替换都将需要用户确认。

:[range]g/内容/模式 命令:如:%g/^he/normal dd表示对所有的行执行以he开头的在normal模式下dd。其中对于range有如下规定,如果不指定就是当前行,如果是m,n就是m到n行,0就是最开始的一行,$就是最后一行,.是当前行,%是所有行。

8.文本的排版

  1. <<:向左缩进一个shift的宽度;>>:向右缩进一个shift的宽度。
  2. :ce:本行文字居中;le:本行文字靠左;ri:本行文字靠右。(这里可以结合V模式进行使用)
  3. :set spell:开启拼写检查;:set nospell:关闭拼写检查。
  4. z=:显示一个有关拼写错误单词的列表,可从中选择。
  5. zg:告诉拼写检查器该单词是拼写正确的。
  6. zw:与上一命令相反,告诉拼写检查器该单词是拼写错误的。

9.编辑多个vim文件

如vim 文件1 文件2 ......

可以使用:next(:n)编辑下一个文件,使用:previous编辑上一个文件,使用:wnext,保存当前文件,并编辑下一个文件,使用:wprevious,保存当前文件,并编辑上一个文件,使用:args 显示文件列表。

  1. vi -o filenames :在水平分割的多个窗口中编辑多个文件。
  2. vi -O filenames :在垂直分割的多个窗口中编辑多个文件。
  3. vim -p 文件1 文件2 ....:打开多个文件,每个文件占用一个标签页。
  4. :tabn:切换到下一个标签。Control + PageDown,也可以。
  5. :tabp:切换到上一个标签。Control + PageUp,也可以。
  6. [n] gt:切换到下一个标签。如果前面加了 n , 就切换到第n个标签。第一个标签的序号就是1。
  7. :tab split :将当前缓冲区的内容在新页签中打开。
  8. :tabc[lose] :关闭当前的标签页。
  9. :tabo[nly] :关闭其它的标签页。
  10. :tabs:列出所有的标签页和它们包含的窗口。
  11. :tabm[ove] [N]:移动标签页,移动到第N个标签页之后。 如 tabm 0 当前标签页,就会变成第一个标签页。
  12. :buffers或:ls或:files :显示缓冲区列表。
  13. ctrl+^:在最近两个缓冲区间切换。
  14. :bn:下一个缓冲区;:bp :一个缓冲区;:bl :最后一个缓冲区。
  15. :b[n]或:[n]b :切换到第n个缓冲区。
  16. :nbw(ipeout) :彻底删除第n个缓冲区。
  17. :nbd(elete) :删除第n个缓冲区,并未真正删除,还在unlisted列表中。
  18. :ba[ll] :把所有的缓冲区在当前页中打开,每个缓冲区占一个窗口。
  19. :vsplit(:vsp) :把当前窗口分割成水平分布的两个窗口。
  20. :qall :关闭所有窗口,退出vim。
  21. :wall :保存所有修改过的窗口。
  22. :only :只保留当前窗口,关闭其它窗口。(CTRL-W o)
  23. :close :关闭当前窗口,CTRL-W c能实现同样的功能。
  24. ctrl+w ctrl+w: 切换到下一个窗口。或者是ctrl+w w。
  25. ctrl+w p: 切换到前一个窗口。
  26. ctrl+w h(l,j,k):切换到左(右,下,上)的窗口。
  27. ctrl+w t(b):切换到最上(下)面的窗口。<BR>
  28. ctrl+w H(L,K,J):将当前窗口移动到最左(右、上、下)面。
  29. ctrl+w r:旋转窗口的位置。
  30. ctrl+w T:将当前的窗口移动到新的标签页上。

10.vim快速编辑

  1. [n] u: 取消一(n)个改动。
  2. :undo 5 :撤销5个改变。
  3. :undolist :你的撤销历史。
  4. ctrl + r: 重做最后的改动。
  5. U:取消当前行中所有的改动。

11.文件加密

  1. vim -x file: 开始编辑一个加密的文件。
  2. :X :为当前文件设置密码。
  3. :set key=:去除文件的密码。
  4. :e ++enc=utf8 filename:让vim用utf-8的编码打开这个文件。
  5. :set fenc或:set fileencoding,查看当前文件的编码。

参考:https://blog.csdn.net/x6582026/article/details/53261885

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值