30分钟入门Vim

简介: 30分钟入门Vim

Vim是从vi发展出来的一个文本编辑器,是Linux后端开发人员必会工具之一,被广大码农戏称为编辑器之神(神之编辑器是Emacs,笔者没用过,看起来段位比Vim更高)。本文简单介绍Vim中不同的模式以及每个模式下的高频命令,希望能够引领初学者快速入门。



Vim的模式


Vim中有多种模式,这种独特的设计容易让很多初学者产生混淆。仅通过键盘,便可在Vim的多种模式之间自由切换。



普通模式


Vim启动之后的默认模式是普通模式,这一点与大多数编辑器正好相反(默认是插入模式)。在这种模式下,用户可执行移动光标、删除文本等操作。例如跳转到第n行,删除第n行数据。




插入模式


在这个模式中,大多数按键都会向当前光标处插入文本。




选择模式


选择模式与Windows下用鼠标选中某一段文本相似。Vim的独特之处在于,只需要通过按键即可选中某一段文本。



命令模式


在命令模式下,可以输入Vim命令并由Vim执行。通常在这种模式下执行搜索、替换、保存文件、退出文件等命令



模式之间的切换


  • 插入模式下,输入"Esc",进入普通模式


  • 普通模式下,输入"i"(或"a", "o" 大小写皆可,但是有不同的含义), 进入插入模式


  • 普通模式下,输入":"(或"/", "?", "!"),进入命令模式


  • 普通模式下,输入"v"(或"V"),进入选择模式





Vim常用命令


文件导航


在普通模式下,可执行以下命令可使光标快速到达目标处:


gg        跳转到当前文件第一行
G         跳转到当前文件最后一行
<n>%      跳转到当前文件的n%处
^         跳到光标当前行的开始
$         跳到光标当前行的结尾
f <char>  跳转到当前行光标后第一个<char>的前一个位置
*         光标所在处单词高亮,并跳转到下一个相同单词处
#         光标所在处单词高亮,并跳转到上一个相同单词处
%         跳转当前光标处括号("[", "{", "(")相配对的括号
{         跳转到当前段落的开头
}         跳转到当前段落的结尾
(         跳转到当前句子的开头
)         跳转到当前句子的结尾
[[        跳转至上一个函数/类(要求C++代码中'{'必须单独占一行)
]]        跳转至下一个函数(要求同上)
CTRL + O  跳转到历史光标位置列表的前一个位置处
CTRL + I  跳转到历史光标位置列表的后一个位置处
mx        设置书签,x只能是a-z的26个字母
`x        跳转到书签处
zR        展开代码折叠




文件编辑


在普通模式下,可执行以下命令对文件进行编辑


x         删除光标位置的字符
dw        删除光标位置的单词
dt<char>  删除光标之后到第一个字符<char>中间的所有文本(不包括<char>)
dd        删除当前行
<n>dd     删除n行
dgg       删除文件第一行到当前行的所有文本
dG        删除当前行到文件最后一行的所有文本
>>        当前代码行增加缩进
<<        当前代码行减小缩进
n>>       对n行增加缩进
n<<       对n行减小缩进
=         格式化当前行代码
r<char>   对光标位置的字符进行替换,新字符为<char>
yy        将当前行复制到缓冲区
<n>yy     复制n行到缓冲区
p         将缓冲区复制到下一行
P         将缓冲区复制到上一行
J         将下一行文本合并到当前行
o         在光标下一行增加一空行, 光标跳转至空行开头,并进入插入模式
O         在光标上一行增加一空行, 光标跳转至空行开头,并进入插入模式




文本选择



在选择模式下,可执行以下命令进行文本选择


v         按v进入行选择模式,接着按Up或者Down键选择多行
V         按V进入列选择模式,接着按UP或者Down键选择行范围,按Left或Right键选择列范围。


当选中了目标文本之后,我们便可对选中文本进行复制(y与p组合)、删除(d)、改写。


文本搜索与替换


在命令模式下,可执行以下命令对文本进行搜索和替换


/<keyword>                              文件中向下搜索<keyword>
?<keyword>                              文件中向上搜索<keyword>
n                                       如果使用`/<keyword>`搜索,跳转到匹配列表的下一个位置;否则跳转到匹配列表的上一个位置
N                                       如果使用`/<keyword>`搜索,跳转到匹配列表的上一个位置;否则跳转到匹配列表的下一个位置
/c<keyword>                             文件中搜索<keyword>,忽略大小写
:s/keyword1/keyword2/g                  将文件中的keyword1全部替换成keyword2
:1,100s/keyword1/keyword2/g             将文件中1到100行的keyword1全部替换成keyword2
:1,100s/keyword1/keyword2/gc            将文件中1到100行的keyword1替换成keyword2,针对每次替换显示确认对话框
:!<bash command>                        退出vim窗口后执行bash命令,再返回vim窗口
:%!xxd                                  以十六进制查看文件内容 
:%!xxd -r                               恢复原状
:set fileencoding                       查看当前文件编码
:goto <offset>                          跳转到文件中偏移量为<offset>的位置



一些常用的组合操作



格式化代码


ggvG=   格式化文件中所有代码


在文本中插入一列


V       首先按V进入列选择模式,然后通过Left/Right, Up/Down选择插入列的位置
I       按I进行插入模式,然后输入文本abc,可看到所有行都插入了一列abc


多行复制


v       首先按v进入行选择模式,然后通过Up/Down键选择多行
y       将选中的多行复制到缓冲区中
        光标跳转到要粘贴的位置
p       将缓冲区中的多行复制到光标位置



将某列文本转化成大写/小写


V       按V进入列选择模式,然后通过Left/Right, Up/Down选择插入列的位置
U       按U将选中的一列文本转化为大写;按u则将其转化为小写



相关文章
|
缓存 Ubuntu Linux
Vim编辑器入门指南:安装、基本操作和高级技巧详解 | 适用于Linux系统
Vim编辑器入门指南:安装、基本操作和高级技巧详解 | 适用于Linux系统
1017 0
|
数据可视化 Linux 开发工具
【Linux从入门到精通】vim的基本使用各种操作详解
vim下的操作多而杂,本篇文章会对vim下常用的多个操作进行详细解释。附加动图解释多个操作,超级详细,希望会对你有所帮助。
188 1
|
2月前
|
机器学习/深度学习 Linux 编译器
Linux入门3——vim的简单使用
Linux入门3——vim的简单使用
61 1
|
4月前
|
开发工具
基本 Vim 命令 - 入门指南
【8月更文挑战第18天】
56 0
|
6月前
|
Linux 开发工具
【Linux文本编辑艺术】:从入门到熟练,Vim大师之路揭秘
【Linux文本编辑艺术】:从入门到熟练,Vim大师之路揭秘
|
7月前
|
IDE Shell 开发工具
004.vim入门
vim vim是一个文本编辑程序没有菜单,只有命令,且命令繁多 基本工作模式 命令模式
64 1
|
Linux 编译器 开发工具
LINUX入门篇【4】开发篇--开发工具vim的使用
LINUX入门篇【4】开发篇--开发工具vim的使用
80 1
|
JavaScript 搜索推荐 Linux
【vim && neovim】从入门到放弃(“四种”模式、常用命令、正则表达式、文件属性、插件安装--代码补全、一键格式化、显示目录)(二)
本文所有操作均通过ssh连接腾讯云服务器完成。如果你正在使用安装GNOME桌面的Linux,很多操作可以通过鼠标完成,或许更加直观。 推荐使用neovim(结合鼠标操作更加丝滑)。
【vim && neovim】从入门到放弃(“四种”模式、常用命令、正则表达式、文件属性、插件安装--代码补全、一键格式化、显示目录)(二)
|
JavaScript Java Linux
【vim && neovim】从入门到放弃(“四种”模式、常用命令、正则表达式、文件属性、插件安装--代码补全、一键格式化、显示目录)(三)
本文所有操作均通过ssh连接腾讯云服务器完成。如果你正在使用安装GNOME桌面的Linux,很多操作可以通过鼠标完成,或许更加直观。 推荐使用neovim(结合鼠标操作更加丝滑)。
|
数据可视化 搜索推荐 Unix
【vim && neovim】从入门到放弃(“四种”模式、常用命令、正则表达式、文件属性、插件安装--代码补全、一键格式化、显示目录)(一)
本文所有操作均通过ssh连接腾讯云服务器完成。如果你正在使用安装GNOME桌面的Linux,很多操作可以通过鼠标完成,或许更加直观。 推荐使用neovim(结合鼠标操作更加丝滑)。