ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Vim基础命令指南及速查

2021-09-08 23:34:00  阅读:185  来源: 互联网

标签:指南 字符 移动 删除 模式 Vim 速查 文本 光标


目录

内容纲领

本文主要面向初次或偶尔使用Vim进行文本编辑的朋友,内容以基础操作指令速查为主,旨在以较小篇幅覆盖尽可能多的基础和常见Vim操作

查删改增

0. 退出Vim

Vim默认通过查看模式(Normal Mode)打开目标文件

vim <filepath>

在查看模式下,你可以用过键入:进入Vim界面下方的命令面板

:<command>

并通过追加<command>Vim进行全局操作。

在退出Vim时,你需要根据以下几种不同情形选择适当的命令:

  • 仅查看,直接退出::x(exit)
  • 保存修改并退出:!wq:x!(write and quit)
  • 放弃修改并退出::q!

注:

  • :x相比,在没有任何内容修改的情况下使用:wq会更新目标文件的修改时间

1. 查

Vim查看模式(Normal mode)下,你可以通过不同尺度的光标移动指令快速浏览和查看目标文件内容。

以字符(char)为单位

  • h, l:以字符为单位向左、右移动光标位置
  • f<char>:(find)移动光标到下一个<char>出现的位置

以单词(word)为单位

  • w, b:以word为单位分别向下一个、上一个连续字符移动,并使得光标指示单词的首个字符位置
  • e:将光标移动到当前单词的末尾字符位置
  • *, #:将光标移动下一个、上一个出现当前单词的位置

以行(line)为单位

  • j, k:以为单位分别向下、上移动光标位置
  • 0, $:分别将光标移动到所在行的首个字符末尾字符
  • gg:直接移动光标到文本首行
  • G:直接移动光标到文本尾行
  • <number>G:移动光标到文本的第<number>

以页(page)为单位

  • ctrl + U, ctrl + D:以半页为单位分别向上、下移动光标位置
  • shift + H, shift + M, shift + L:在当前页(屏幕)内将光标移动到第一行、中间行、最后一行
  • zz:以当前光标位置为中间行显示周围页(屏幕)

括号域

  • %:移动光标到当前所在括号匹配域的括号位置

全局查找

  • :/:在全局命令面板中进入搜索模式(Search Mode)查找目标字符串,使用n, N下一个、上一个匹配项移动

2. 删

删除字符(char)

  • x:删除当前光标位置字符

删除单词(word)

  • diw:(delete inside word)删除光标所在单词

删除句子(sentence)

  • dis:(delete inside sentence)删除光标所在句子

删除行

dd:删除光标所在行

高阶匹配域(见章节:*组合指令)

  • df<char> or dt<char>:到当前行给定字符(包含/不包含目标字符)
  • d<移动指令>:删除移动路径范围字符
  • di<object>:删除给定匹配域字符

3. 改

改变字符(char)

  • s:(substitute)修改光标位置字符(进入插入模式)
  • r<target-char>:(replace)修改光标位置字符(保持查看模式)

其余操作与删除操作d一致

  • 2. 删章节中的d替换为c,也即在删除目标后进行自动切换为插入模式

4. 增

增加文本一般可以分为两种情况:

复制粘贴既有文本

在获得复制得到的文本buffer后,可通过在查看模式下键入p,粘贴buffer到光标位置。对于复制文本的情形,可根据实际情境选择不同方法实现:

查看模式

  • yyY复制当前行
  • y<移动指令>复制光标移动范围文本,如
    • 配合行移动:yj复制当前当前行及下一行
    • 配合字符移动:yl复制下一个字符
    • 配合指定行移动:ygg复制第一行到当前行等

可视化模式

  1. 在查看模式下键入v进入可视化模式,通过移动光标选中范围字符
  2. 键入y复制选中文本

键入文本

在查看模式下键入i(insert,光标位置插入)或a(append,光标位置后添加)进入插入模式

通用操作

undo和redo

  • u: undo
  • ctrl + r : redo

重复执行一次最近一次命令

  • .:在当前光标位置重复前一个执行指令

重复执行多次当前指令

  • <number><command>:连续<number>次执行<command>, 如:
    • 3j:光标向下移动三行
    • 3fc:光标移动到下文中第3次出现c的位置
    • 3ic:在光标位置进入插入模式,并连续插入3c
    • d3l:删除当前行及接下来的三行

*组合指令

动词✚修饰符✚对象

动词

  • c:(change)改
  • d:(delete)删

修饰符

  • i:(inside)在……内
  • t:(till)到……(不包括目标字符)
  • f:(find)到……(包括目标字符)

对象

  • w:(word)单词
  • s:(sentence)句子
  • t:(tag)标签
  • ([{·:对应括号内字符串
  • '":对应引号内字符串

示例

  • diw:删除当前单词
  • dis:删除当前句子
  • dt<char>:删除从光标位置开始,到目标<char>前的所有字符
  • 将以上指令中的d替换为c,则在删除基础上进入插入模式

*可视化模式(Visual Mode)

在查看模式(Normal Mode)下键入v进入可视化模式(Visul mode),并使用查看模式下的移动逻辑选取文本范围,选取文本被高亮显示。

在得到选取文本后,你可以在此基础上进行:

  • 删:使用d删除选中文本
  • 改:使用c修改选中文本(删除并进入插入模式)
  • 复制:使用y复制选中文本

扩展

  1. Interactive Vim tutorial
  2. 8 Vim Tricks That Will Take You From Beginner to Expert | by Tyler Lum | The Startup | Medium

标签:指南,字符,移动,删除,模式,Vim,速查,文本,光标
来源: https://blog.csdn.net/weixin_43958105/article/details/120097912

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有