vim常用命令 技巧

去重相关:

  • 删除重复行(先排序) 要求重复行挨着:
:sort
:g/^(.+)$
1/d 
  • 删除重复行(先排序), 不要求重复行挨着:
:sort u
  • shell脚本,按某一列去重
sort -k 3 -n -u filename         #按第3列有重复的去重: -k 3文本第三列 -n按数字排序,-u去重,默认分隔符是空格.

删除相关

1.定位光标
2.按下Ctrl+q(或者Ctrl+v),打开可视视图
3.移动选中要删除的列
4.按x删除。

合并相关

:1,3 join   #将1到3行合并为一行。
:g/^/j      #奇偶行合并

对齐相关

:1,13 left        #1到13行左对齐
`:%!column -t`    #将整个文本的各列左对齐,需要调用外部命令:column

替换相关

:s/,/
/g     #将光标所在行的逗号替换成换行符。
是换行符。
:1,$s/^M//g   #将全文中的^M去掉,注意:^M需要用Ctrl-v  Ctrl-M生成,不能用写的。
:%s/vzs----.*42Dze//g      #将字符串`---- More ----^[[42D  ^[[42D`替换为空.

为VIM的每一行自动编号

:4,11s/^[0-9]*/=line('.')-line("'<'")+1     #4-11行自动替换每一行的行号 ^[0-9]* 匹配开头为数字的字符 =line('.')-line("'<'")+1 以1开头增加

复制相关 参考

yy      #复制一整行
yw      #复制一个单词,带空格
ye      #复制一个单词,不带空格
"+yy    #复制当前行到系统剪切板 
"+p     #将剪切板内容粘贴到光标下一行

常用命令

:history          #查看历史命令
:browse oldfiles  #列出之前打开的文件记录,按q可以暂停,然后输入5,可以打开5这个文件。
  • 缓冲区
:buffers          #可以列出整个缓冲区(同":ls")
:bnext            #跳转到下一个缓冲区 
:bprevious        #跳转到前一个缓冲区
:bfirst           #跳转到第一个缓冲区  
:blast            #跳转到最后一个缓冲区  
:bdelete 3        #把一个缓冲区从列表中去除
  • 标签管理
:tabedit /home/filename.md      #在新的标签中打开filename.md
:tabnew                         #新建标签页
:tabfind filename.md            #查找filename.md文件,并在新标签中打开
:tabs                           #列出已打开的标签
:tabn                           #移动到下一个标签页
gt                              #移动到下一个标签页
:tabp                           #移动到上一个标签页
gT                              #移动到上一个标签页
:tabfirst                       #移动到第一个标签页
:tablast                        #移动到最后一个标签页
:tabclose                       #关闭当前的标签页
:tabonly                        #关闭其它标签页,仅保留当前标签页
原文地址:https://www.cnblogs.com/luniverseg/p/12856623.html