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]:去到第n行
    • [n]G:去到第n行
  • 列跳转

    • [n]w(word):向后跳到第n个单词的开头
    • [n]b(back):向前跳到第n个单词的开头
    • [n]e(end):向后跳到第n个单词的结尾
    • [n]ge(go end):向前跳到第n个单词的结尾
    • -:跳到上一行开头
    • +:跳到下一行开头
    • 0(数字零):跳到本行第1个位置
2. 剪切
  • 删除字符
    • [n]x:从光标处起,向后删除n个字符(包括光标处字符)
    • [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:全部退出
相关推荐
nbsaas-boot3 小时前
如何利用ChatGPT加速开发与学习:以BPMN编辑器为例
学习·chatgpt·编辑器
一棵开花的树,枝芽无限靠近你4 小时前
【PPTist】添加PPT模版
前端·学习·编辑器·html
热爱生活的五柒5 小时前
vscode利用ofExtensions插件可以调试单进程Openfoam,但是不能调试mpi多进程案例
ide·vscode·编辑器
为什么每天的风都这么大14 小时前
Vscode/Code-server无网环境安装通义灵码
ide·vscode·阿里云·编辑器·ai编程·code-server
陌上阳光1 天前
vscode连接远程开发机报错
ide·vscode·编辑器
羊子雄起1 天前
CKEditor前端样式和编辑器的样式不一致的问题
前端·编辑器
界面开发小八哥1 天前
「Java EE开发指南」如何使用Visual JSF编辑器设计JSP?(一)
java·ide·java-ee·编辑器·myeclipse
Bio Coder1 天前
vim 一次注释多行 的几种方法
linux·编辑器·vim·注释·快捷键·方法·取消注释
luckilyil2 天前
前端—Cursor编辑器
前端·编辑器
一棵开花的树,枝芽无限靠近你2 天前
【PPTist】开源PPT编辑器初体验
编辑器·powerpoint