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尾行
nGn行
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/gn1 与 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删除游标所在前一个字符
DeleteX
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+rredo,即撤销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 许可协议。转载请注明出处!