Vim 高级操作

[toc]

Commands

  • 命令行终端输入: vimtutor。 这是史上最简单、最全面的 vim 基础教程,至今无人超越。
  • tree
    tree 命令用于以树状图列出目录的内容,它会列出指定目录下的所有文件,包括子目录里的文件。

功能扩展

文本整体的处理

  • gu:切换为小写
  • gU:切换为大写
  • ~:切换光标所在位置的字符的大小写形式,大写转换为小写,小写转换为大写。
  • 3~:将光标位置开始的 3 个字母改变其大小写

如何删除一个单词

  • dw
    • 从光标当前的位置开始删除,直到单词最后。
  • daw
    • 删除光标所在的单词,简记 delete a word。
  • bdw
    • 复合命令,b 可以让光标回退到单词开头的位置,而 dw 则是从头开始删除单词。
1
2
3
# de 删除至当前单词末尾,包括当前字符
# d$ 删除至当前行尾
# 2dd 删除两行

移动光标

1
2
3
4
5
6
# hjkl
# 2w 向前移动两个单词
# 3e 向前移动到第 3 个单词的末尾
# 0 移动到行首
# <ctrl>+o 跳转回之前的位置
# <ctrl>+i 返回跳转之前的位置

修改

1
# A 当前行末尾添加

撤销

1
2
# u 撤销
# <ctrl>+r 取消撤销

状态

1
# <ctrl>+g 显示当前行以及文件信息

查找

1
2
3
4
5
6
# / 正向查找(n:继续查找,N:相反方向继续查找)
# ? 逆向查找
# :set ic 忽略大小写
# :set noic 取消忽略大小写
# :set hls 匹配项高亮显示
# :set is 显示部分匹配

替换

1
2
3
# :s/old/new 替换该行第一个匹配串
# :s/old/new/g 替换全行的匹配串
# :%s/old/new/g 替换整个文件的匹配串

搜索

  • 匹配末尾
1
/关键字\>
  • 匹配开头
1
/\<关键字
  • 排序
1
!sort

复制到剪贴板

  1. 查看 vim 版本是否支持 clipboard
1
vim --version | grep "clipboard"
  1. clipboard 前面如果有一个减号,说明不支持,需要 安装图形化界面的 vim。
1
sudo apt-get install vim-gnome
  1. 打开 vim 输入 :reg 查看 vim 的寄存器,当支持 clipboard 之后,会多出 "+ 寄存器,表示系统剪切板。在 vim 中进入 visual 视图后,使用"Ny (N 表示特定寄存器编号),可以将内容复制到特定的剪切板,那么我们的目的是要复制到系统剪切板则需要选中内容后输入命令:
1
"+y
  1. 同理,"+p 将系统剪切板的内容拷贝到 vim 中(非编辑模式下)。
1
"+p

多窗口调整窗口大小

1
2
3
4
5
6
7
8
9
// 命令行模式下 
// 纵向调整 []输入可选,可以输入也可以不输入,num 指代一个数字
:res[ize] num // 指定当前窗口为num列num行
:res[ize] +num // 把当前窗口高度增加num行
:res[ize] -num // 把当前窗口高度减少num行
// 横向调整
:vert[ical] res[ize] num // 指定当前窗口为num列
:vert[ical] res[ize] +num // 把当前窗口增加num列
:vert[ical] res[ize] -num // 把当前窗口减少num列

参考链接

显示行号

命令行模式,输入 “set number” 或者 “set nu”。

替换文本

  • 对于替换命令 s 来说,如果要替换掉换行符,需使用 \n 作为搜索串;如果要替换字符串生成新行,请使用 \r 作为目标串。

References