Vim编辑器笔记

开发vi文本编辑器的大佬用的是 ADM-3A 终端机。

  • 注意输入法切换到ABC键盘,mac上的搜狗输入法会自动跳回中文

  • $ vim 命令行模式输入 e: 路径 同样可以打开文件

一、工作模式

1 常用

  • 普通模式(Normal mode)

  • 命令模式(Command mode)

  • 输入模式(Insert mode)


2 不常用

  • 可视模式(Visual mode)
  • 选择模式(Select mode)
  • Ex模式(Ex mode)

二、环境配置

系统设定/etc/vim/vimrc

  • :set nu显示行号
  • :set nonu 取消行号
  • :set background=darklight,设置背景风格
  • 命令行模式下输入:set autoindent(ai) 设置自动缩进
  • 命令行模式下输入:set autowrite(aw) 设置自动存档,默认未打开
  • 命令行模式下输入:set backup(bk) 设置自动备份,默认未打开
  • 命令行模式下输入: set cindent(cin) 设置C语言风格缩进

三、游标移动

  • 方向键
  • h j k l w b,看封面的键盘就知道为什么,原来那种mini键盘没有方向键可以这样用。
  • 按键加上数字就可以移动n个
按键 说明
h 左移一个字符
l 右移一个字符
j 下移一行
k 上移一行
w 移动到下一个单词
b 移动到上一个单词
gg 首行
G 尾行
nG n行
H 光标移动到当前屏幕的最上方那一行的第一个字符
M 光标移动到当前屏幕的中间那一行的第一个字符
L 光标移动到当前屏幕的最下方那一行的第一个字符
n 数字 + Enter(向下移动)| 数字 + space(向后移动n个字符)
[Ctrl] + [f] 屏幕『向下』移动一页,相当于 [Page Down]按键 (常用)
[Ctrl] + [b] 屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用)
[Ctrl] + [d] 屏幕『向下down』移动半页
[Ctrl] + [u] 屏幕『向上up』移动半页
+ 光标移动到非空格符的下一行
- 光标移动到非空格符的上一行
0 或功能键[Home] 这是数字『 0 』:移动到这一行的最前面字符处 (常用)
$ 或功能键[End] 移动到这一行的最后面字符处(常用)

四、搜索和替换

搜索
/word 向下搜索字符串
?word 向上搜索字符串
按键n 向上继续搜索next下一个匹配值
按键N 向下继续搜索Next下一个匹配值
替换 下面的 s 代表删除字符并插入
:n1,n2s/word1/word2/g n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 !举例来说,在 100 到 200 行之间搜寻 vbird 并取代为 VBIRD 则: 『:100,200s/vbird/VBIRD/g』。(常用)
:1,$s/word1/word2/g:%s/word1/word2/g 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !(常用)
:1,$s/word1/word2/gc:%s/word1/word2/gc 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !且在取代前显示提示字符给用户确认 (confirm) 是否需要取代!(常用)
r+<待替换字母> 将游标所在字母替换为指定字母
R 连续替换,直到按下Esc
cc 替换整行,即删除游标所在行,并进入插入模式
cw 替换一个单词,即删除一个单词,并进入插入模式
C(大写) 替换游标以后至行末
~ 替换大小写(反转游标所在字母大小写)

五、删除文本

普通模式下删除文本

命令 说明
x 删除游标所在的字符
X 删除游标所在前一个字符
Delete X
dd 删除整行 2dd表示删除游标下面的两行
dw 删除一个单词(不适用中文)
d$D 删除至
d^ 删除至
dG 删除到文档结尾处
d1G 删至文档首部

六、复制粘贴

  • 普通模式中使用y复制
    • 普通模式中,yy复制游标所在的整行(3yy表示复制3行)
    • 普通模式中,y^ 复制至行首,或y0。不含光标所在处字符。
    • 普通模式中,y$ 复制至行尾。含光标所在处字符。
    • 普通模式中,yw 复制一个单词。
    • 普通模式中,y2w 复制两个单词。
    • 普通模式中,yG 复制至文本末。
    • 普通模式中,y1G 复制至文本开头。
  • 普通模式中使用 p 粘贴
    • 普通模式中,p(小写)代表粘贴至游标所在行之下
    • 普通模式中,P(大写)代表粘贴至游标所在行之上

七、撤销

替换和Undo命令都是针对普通模式下的操作

命令 说明
u{n} 撤销一次或n次操作
U(大写) 撤销当前行的所有修改
Ctrl+r redo,即撤销undo的操作

八、保存离开

从普通模式输入:进入命令行模式,输入:w 路径+文件名可以将文档另存

  • ! 强制
  • qquit
  • w write
命令 说明
:q! 强制退出,不保存
:q 退出
:wq! 强制保存并退出
:w <文件路径> 另存为
:saveas 文件路径 另存为
:x 保存并退出
:wq 保存并退出

九、其他

1 可视模式

shift + v进入

  • 命令行模式下输入:new 打开一个新的vim视窗

  • 命令行模式下输入:vsp 2.txt 打开新的横向视窗来编辑2.txt

  • 命令行模式下输入:vsp 3.txt 打开新的横向视窗来编辑3.txt

  • 分别在不同视窗的命令行模式下输入:q!退出多视窗编辑

2 创建加密文档

1
$ vim -x name.file

输入您的密码 确认密码 这样在下一次打开时,vim就会要求你输入密码

3 重复命令

普通模式下

  • .代表重复两次命令

  • 输入10x,删除游标后10个连续字符

  • 输入3dd,删除游标后3行文本

参考

  • 本文作者: Ashin Wang
  • 本文链接: https://ashin.wang/vim-notes/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!