vim常用命令

vim 常用命令

文本操作

命令描述 命令
自动缩进所使用的空白长度为 4 :set sw=4
tab 所赞同的空格长度为 4 :set ts=4
以 4 个空格代替 tab :set expandtab
非贪婪匹配 200_.\{-}.gz
删除包含空白符的空行 :g/^\s*$/d
将制表符替换为空格/反过来 :%retab!
vim 正则中的换行 \r

vim 设置

命令描述 命令
设置行宽度 :set textwidth=100
自动换行 :set wrap
粘贴不自动缩进 :set paste
指定语法高亮 :set syn=json
语法高亮 :setf shell
显示隐藏字符 :set invlist
不显示隐藏字符 :set nolist
屏幕第一行 z + Enter
屏幕中间行 z + .
屏幕最后行 z + -

文件操作

命令描述 命令
在已经打开的 vim 中打开新的文件 :e filename
在两个已经打开的文件之间切换 Ctrl + 6
下一下文件 :bn
上一个文件 :bp
第几个文件 :b1~n
Windows 格式的文档改为 Linux :set ff=unix
Windows 格式的文档改为 Linux sed -i ’s/\r//’ filename

其他操作

TAB 替换为空格

TAB 替换为空格对于已保存的文件,可以使用下面的方法进行空格和 TAB 的替换:

  :set ts=4
  :set expandtab
  :%retab!

空格替换为 TAB

  :set ts=4
:set noexpandtab
:%retab!

Vim 插入模式下插入文件名

  <C-r> + %
  <C-x><C-f>

行操作

  :g/pattern/d 是找到pattern, 删之
  :v/pattern/d 是找到非pattern, 删之
  :%s/xxx//gn,统计xxx个数,n表示只报告匹配的个数而不进行实际的替换。

行去重:

:sort
#去除重复行
:g/^\(.*\)$\n\1$/d

命令行的方式:
cat 文件名 | sort | uniq

格式化

格式化 SQL:

pip install sqlparse

:%!sqlformat --reindent --keywords upper --identifiers lower -