VIM 是什么
Vim是从vi发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。
VIM 基本操作
快捷键
命令 |
含义 |
h |
左移(相当于←) |
j |
下行(相当于↓) |
k |
上行(相当于↑) |
l |
右移(相当于→) |
e |
使光标移动到单词末尾 |
CTRL-D |
可以命令行补全 |
<TAB> |
可以进行命令行补全 |
添加命令
命令 |
含义 |
A |
在一行后添加文本 (添加完毕后, 按<ESC> 键回到正常模式) |
i |
在光标前插入文本 |
o (小写字母o) |
在光标下方打开新的一行并进入插入模式 |
O (大写字母O) |
在光标的上方打开新的一行并进入插入模式 |
复制命令
命令 |
含义 |
yw |
复制一个单词 |
v |
按v 键使vim 进入可视模式进行选取 , 可以四处移动光标改变选取区域, 接着可以使用操作符对选中文本进行操作 |
y |
复制文本 (配合v 使用) |
粘贴命令
命令 |
含义 |
p |
在正常模式下 (ESC 进入) , 输入p 将最后一次删除的内容置于光标之后 , 如果最后一次删除的是一个整行, 那么该行将置于当前光标所在行的下一行。 |
更改命令
更改类命令的格式是 : c [number] motion
命令 |
含义 |
r |
输入 r 和一个字符替换光标所在位置的字符 (将光标移到要替换的字符前面); " :r FILENAME "向当前文件插入另外的文件的内容 |
|
ce |
要改变文本直到一个单词的末尾 , 请输入 ce (删除文本的同时进入插入模式) |
c$ |
从当前光标删至行末 |
#,#s/old/new/g |
替换两行之间出现的每个匹配串,其中#,# 代表的是替换操作的若干行中首位两行的字号 |
%s/old/new/g |
替换整个文件中的每个匹配串 |
%s/old/new/gc |
会找到整个文件中的每个匹配字符串, 并且对每个字符串提示是否进行替换 |
删除命令
d motion
命令 |
含义 |
x |
在正常模式下, 可以按下 x 键来删除光标所在位置的字符 |
dw |
从光标处删除至一个单词的末尾 |
dd |
删除整个当前行 |
d$ |
从当前光标删除到行末 |
撤销命令
命令 |
含义 |
u |
撤销最后执行的命令 |
U |
撤销对整行的修改 |
CTRL -R (按住CTRL 不放) |
撤销掉撤销命令 |
查找定位命令
命令 |
含义 |
CTRL-g |
显示当前编辑文件中当前光标所在行位置以及文件状态信息。 (按住CTRL 不放开, 然后按 g ) |
G |
输入G 直接跳转到文件最后一行 ; 输入行号 , 再输入G , 将光标移动至该行号代表的行 |
gg |
使得当前光标直接跳转到文件第一行 |
/ +字符串 |
在当前文件中正向查找该字符串 。要查找同上一次的字符串, 只需要按 n 键 ; 要向相反方向查找同上一次的字符串吗 输入 N |
? + 字符串 |
逆向查找字符串 |
CTRL- O |
查找结束后要回到之前位置按 CTRL- O (按住CTRL键不放同时按下字母 O ) |
CTRL - I |
会跳转至较新的位置 |
% |
查找配对的括号 (在程序调试时 , 用这个功能来查找不配对的括号) |
set xxx 可以设置 xxx 选项, 一些有用的选项如下 (选项名可以用完整版本, 也可以用缩略版本 ):
'ic' 'ignorecase' 查找时忽略字母大小写
'is' 'incsearch' 查找短语时显示部分匹配
'hls' 'hlsearch' 高亮显示所有的匹配短语
PS: 在选项前加上 no 可以关闭选项: :set noic
保存命令
命令 |
含义 |
w FILENAME |
将对文件的改动保存到文件中 |
v |
按v 键使vim 进入可视模式进行选取 , 可以四处移动光标改变选取区域, 接着可以使用操作符对选中文本进行操作 |
关闭文件命令
命令 |
含义 |
:q |
退出 |
:q! |
不保存并退出 |
:w |
保存 |
:w! |
强行保存 |
:wq |
保存并退出 |
小结
- :! command 用于执行一个外部命令 command
- 使用操作符时输入数字可以使它重复那么多次 : operator [number] motion
使用计数指定动作 :
输入2 w 使光标向前移动两个单词
输入3e 使光标向前移动到第三个单词的末尾
输入 0 移动光标到行首
- 大小写命令代表的含义不一样, 用的时候要注意区分
查看VIM 基本教程
可以通过 vimtutor 启动VIM 基本教程 ;
F1 可打开帮助窗口 (:q 关闭帮助窗口)。
PS:在浏览教程时,不要强行记忆。记住一点:在使用中学习。