vim的使用

1. 相关前置知识

常见的编辑器一般分类两大类

  • 记事本、word、vscode... 这些属于是所见即所得的
  • vim、nano、emacs... 这些是属于命令式的

练习vim达到熟练程度的时间会更长,但同时上限也会更高

Vim总共有三种模式

  • 普通模式(命令模式)
  • 编辑模式(插入模式)
  • 视图模式

普通模式 → 编辑模式

  • i(insert):光标前插入
  • a(append):光标后插入
  • I(shift + i):行首插入
  • A:行尾插入
  • o:从下面插入新行
  • shift + o:从上面插入新行

普通模式 → 视图模式

  • v
  • V:进入行选择模式(行优先)
  • Ctrl + v:进入块选择模式(列优先)

编辑/视图模式 → 普通模式

  • ESC

退出vim

  • :q:未修改内容退出
  • :q!:修改了内容,强制退出(不修改内容)
  • :wq:保存内容并退出

2. 命令模式

:以下命令中,当n为1时,可以省去[n],例如d1d,可直接dd。

1. 移动
  • 方向

    • h:←
    • j:↓
    • k:↑
    • l:→
  • 首尾

    • ^:行首
    • $:行尾
    • H(head):页首
    • L(last):页末
    • gg:开始
    • G:结尾
  • 翻页

    • Ctrl + f(forward):下一页
    • Ctrl + b(backward):上一页
    • Ctrl + d(down):下半页
    • Ctrl + u(up):上半页
  • 行跳转

    • n\]-:向上移动n行

    • :[n]:去到第n行

    • n\]G:去到第n行

    • n\]w(word):向后跳到第n个单词的开头

    • n\]e(end):向后跳到第n个单词的结尾

    • -:跳到上一行开头

    • +:跳到下一行开头

    • 0(数字零):跳到本行第1个位置

2. 剪切
  • 删除字符
    • n\]x:从光标处起,向后删除n个字符(包括光标处字符)

  • 删除单词
    • d[n]w:删除n个单词(删除后光标在下一个单词词首位置)
    • d[n]e:删除n个单词(删除后光标在被删除的单词词尾的位置)
  • 删除行
    • d[n]d:删除n行
    • d$:从光标处删除到行尾(包括光标处字符)
    • d^:从光标前删除到行首(不包括光标处字符)
    • dt[字符](delete to 字符):从光标处删除到某个字符的位置(不包括该字符)
  • 粘贴
    • p
3. 复制
  • 复制行
    • y[n]y:复制n行
    • :a,by:复制第a行~第b行
4. 查找
  • /pattern(正则表达式)
    • n:下一个匹配项
    • N:上一个匹配项
5. 替换
  • :s/pattern/替换项(默认只能替换光标所在行第一个匹配项)

    • :s/pattern/替换项/g(替换光标所在行所有匹配项)
    • :a,bs/pattern/替换项/g(替换第a行~第b行的所有匹配项)
    • :%s/pattern/替换项/g(全文替换)

    补充

    在大文件中,例如上千万行的文件中,全文替换替换可使用sed流编辑器来替换,速度更快。

6. 其他
  • u:撤销
  • Ctrl + r:取消撤销

3. 视图模式

1. 代码对齐
  1. 按下shift+v进入视图模式
  2. 选中需要代码对齐的行
  3. 按下等于号=
2. 多行注释
  1. 按下ctrl+v以block进入视图模式
  2. 按大写字母I,输入注释符//(此时只有第一行会被修改,不要慌)
  3. 按esc键就会全部注释掉了
3. 多行复制
  1. 按下shift+v进入视图模式
  2. 选中需要复制的行
  3. 按下y
4. 多行删除
  1. 进入需要的视图模式
  2. 选中删除的内容
  3. 按下d

4. 多窗口

1. 多窗口
  • :new [文件名]:水平多窗口
  • :vnew [文件名]:垂直多窗口
  • :sp [文件名](split):水平多窗口
  • :vsp [文件名]:垂直多窗口
  • ctrl+w,w:使光标在多个窗口来回切换
2. 多标签
  • :tabnew [文件名]:在新标签里打开
  • gt:跳到下一个标签
  • gT:跳到上一个标签

5. 其他

1. 锁定和解锁vim窗口
  • ctrl + s:锁定
  • ctrl + q:解除锁定
2. 对比两个文件的内容
  • vimdiff file1 file2
  • ]c:跳到下一个差异处
  • [c:跳到上一个差异处
  • :qa:全部退出
相关推荐
weixin_404679313 小时前
vscode内存过大
ide·vscode·编辑器
winfredzhang3 小时前
深入剖析 wxPython 配置文件编辑器
python·编辑器·wxpython·ini配置
hoo3434 小时前
轻量不卡顿!7-Zip 清爽压缩软件:高压缩比
编辑器·7-zip
infiniteWei4 小时前
【VIM 入门到精通】快速查找与替换:定位和修改文本的利器
linux·编辑器·vim
七元权4 小时前
VSCode连接远程容器失败(Missing GLIBC >=2.28!)
ide·vscode·编辑器·连接容器
infiniteWei5 小时前
【VIM 入门到精通】视觉模式与剪贴板:高效选择、复制与粘贴
linux·编辑器·vim
infiniteWei5 小时前
【VIM 入门到精通】精准光标移动与文本对象:Vim思维的进阶
linux·编辑器·vim
信奥胡老师14 小时前
苹果电脑(mac系统)安装vscode与配置c++环境,并可以使用万能头文件全流程
c++·ide·vscode·macos·编辑器
汐ya~1 天前
Cursor连接异常问题“Model not available/connection failed”解决:IDE内置代理配置,无需全局流量代理与虚拟网卡
python·编辑器·cursor
小杍随笔1 天前
【Zed 编辑器配置全攻略:自动保存、Prettier、终端字体与格式化设置一步到位】
开发语言·rust·编辑器