去重相关:
- 删除重复行(先排序) 要求重复行挨着:
: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 #关闭其它标签页,仅保留当前标签页