vim是一个功能非常强大的文本编辑器,它有超多的命令。本篇文章介绍vim的基本操作,参考该内容可以让你轻容入门vim编辑器,领略vim的powerful!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 1.1:vim光标的移动
使用vim编辑器时,可以使用`h,j,k,l`来移动光标。
h:光标左移;
l:光标右移;
j:光标下移;
k:光标下移。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 1.2:退出vim
`:q! 回车`
在正常模式下,输入冒号(:)会进入到命令行模式下,q命令表示退出。
感叹号(!)表示无论文本的修改是否被保存,都要退出。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 1.3:文本编辑 - 删除
按键 x 用来删除光标所在位置的字符内容。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 1.4:文本编辑 - 插入
在正常模式(Normal)下,按 i 键,进入插入模式(Insert)。
在插入模式下,可以输入文本内容到光标位置。
如果需要退出插入模式,返回到正常模式,需要按`<Esc>`按键。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lseeon 1.5:文本编辑 - 附加内容
在正常模式(Normal)下,按 A 键,光标会移动至该行内容末尾,并进入插入模式(Insert)。
同样,如果需要退出插入模式,则需要按`<Esc>`按键。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 1.6:编辑文件
使用` :wq `命令,保存文件并退出。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lseeon 1 小结
1. 光标移动。
h (←) j (↓) k (↑) l (→)
2. 终端使用vim打开一个文本: vim FILENAME <ENTER>。
3. 退出vim: <ESC> :q! <ENTER> 放弃所有未保存的变更内容。
或者 输入: <ESC> :wq <ENTER> 保存变更内容并退出。
4. 删除光标位置的字符: x
5. 插入或者扇入文本内容:
i 插入文本,在光标之前插入文本内容
A 在本行结尾处插入内容
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 2.1:删除命令
` dw `命令可以删除一个单词。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 2.2:其他删除命令
` d$ ` 可以删除光标位置到行末尾的内容。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 2.3:操作命令和操作对象
大多数的命令对文本的操作是以`操作命令 + 操作对象`的格式来操作文本的。如:
d motion
d 表示一个删除的操作命令;
motion 表示操作对象。
常用操作对象列表:
w - 光标位置到下一个单词的第一个字符(不包含);
e - 光标位置到该单词结尾(包含单词最后一个字符);
$ - 光标位置到行末尾。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 2.4:对多个操作对象操作
在操作对象前输入一个数字,表示重复该操作多次。
如:
2w 移动光标到后两个单词的词头
3e 移动光标到后三个单词的词尾
0 移动光标到当前行首
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 2.5:使用数字进行多次删除
在操作命令后接一个数字,表示重复该操作多次。
d number motion
如:
d2w - 删除两个单词
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 2.6:对行的操作
使用` dd `命令可以删除一整行内容
如:
2dd - 删除当前行及下一行内容。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 2.7:撤销操作命令
` u `命令可以撤销上一步操作内容。` U `可以撤销对整个一行的修改。
` CTRL-R `则与` u `命令相对。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 2 小结
1. 删除当前光标位置到下一次单词开始处: dw
2. 删除当前光标位置到当前行结尾: d$
3. 删除整行内容: dd
4. 重复一个操作对象可以在其前插入一个数字: 2w
5. 操作命令的基本格式:
operator [number] motion
其中:
operator - 表示操作码
[number] - 表示重复次数
motion - 表示操作对象,
6. 移动光标到行首: 0
7. 撤销之前的操作内容: u (lowercase u)
撤销一整行的操作内容: U (capital U)
撤销上次的撤销内容(redo): CTRL-R
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 3.1:粘贴命令
` p `(put)命令将前一个删除命令删除的内容,粘贴到光标所在字符位置之后。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 3.2:替换命令
` r{char} `命令用{char}替换当前光标位置处的字符。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 3.3:修改操作
` ce `命令会删除当前光标位置至该单词结束处的所有字符,然后进入插入模式。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 3.4:关于 c 命令的其他用法
` c `命令同样支持` c [number] 操作对象` 的用法。
操作对象可选,如:w(word),$(end of line)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 3 小结
1. ` p `命令,粘贴上次删除内容到光标位置之后。
2.` r `命令,替换单个字符。
3. ` c$ `命令,删除光标位置至行末内容。
4. 修改操作的常用格式:
c [number] 操作对象
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 4.1:光标位置及文件状态
<ctrl + g>命令会显示文件名称及光标位置所在行。
' G '命令移动光标到文件底部。
` gg `命令移动光标到文件的开始位置。
` <line number>G `命令移动光标到文件指定行。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 4.2:查找命令
` /<词组> `命令可以查找一个<词组>
` / `正向查找,` ? `反向查找
` n `查找下一个,` N `查找上一个
` ctrl + o `回退到上一位置
` ctrl + i `前进到下一位置
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 4.3:括号匹配查找
当光标位置为一个`( [ { ` 时,' % '命令可以跳转到与该括号匹配的另一个括号上。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lseeon 4.4:替换(substitute)命令
` :s/old/new/g `命令可以将本行所有的[old]替换为[new]。
其中g表示替换当前行的所有[old]为[new]。
` :%s/old/new/g `命令中添加%则表示替换全文范围内出现的[old]为[new]。
` :%s/old/new/gc `命令中添加c时,每次匹配到[old]都会出现提示符,询问是否需要替换该[old]为[new]。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 4:小结
1. CTRL-G 显示当前光标所在位置以及文件的状态
G 移动光标到文件末尾
number G 移动光标到给定行
gg 移动光标到文件第一行
2. 在` / `后输入要查找的内容,可以从当前位置正向查找该内容;
在` ? `后输入要查找的内容,可以从当前位置反向查找该内容;
完成一次查找查找操作之后,` n `命令可以以同样的方向查找到下一个出现该内容的位置,` N `命令以相反方向查找到下一个出现该内容的位置。
CTRL-O 可以移动光标到上一个位置, CTRL-I 可以移动光标到下一个位置。
3. 当光标位于一个括号字符位置时,` % ` 命令可以移动到与该括号配对的括号所在位置。
4. 内容替换 :s/old/new
替换所有的出现的内容 :s/old/new/g
指定行数范围内内容替换 :#,#s/old/new/g
替换文档中出现的所有内容 :%s/old/new/g
替换前询问确认需要加'c'命令 :%s/old/new/gc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 5.1:在vim中执行外部命令
vim中支持暂时返回到终端执行一次终端命令,如` :!ls `命令,会在终端执行 ls 命令。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 5.2:文件写入操作
` :w `命令将当前文本内容写入正在打开的文件中,可以理解为保存修改内容命令。
如果需要将文件写入一个新文件,可以在该命令后接空格+文件名,将文件写入新的文件。
如` :w TEST `命令,将文件写入TEST
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 5.3:选择文本并写入文件
使用` v `命令之后,通过方向键移动光标来选择文本,输入` : `命令进入命令行模式,此时,底栏会出现提示符' :'<,'> ',继续输入` w TEST `按回车,则会将光标选中的文本写入TEST文件。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 5.4:读入文件到当前光标所在行
使用` :r FILENAME `命令,可以将文件FILENAME写入到光标所在位置的当前文件中。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 5 小结
1. ` :! `命令可以执行一个外部命令
如:
:!ls - 显示一个目录下的文件列表
:!rm FILENAME - 删除文件FILENAME.
2. :w FILENAME 将当前文件写入文件FILENAME中
3. v motion :w FILENAME 保存选中文件到文件FILENAME中
4. :r FILENAME 读取文件FILENAME 到当前光标所在文件的位置
5. :r !ls 读取ls命令的输出到当前文件中光标位置
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 6.1:文件打开命令
` o `命令可以在光标所在行的下一行插入空行,并进入插入模式。
` O `命令可以在光标所在行的上一行插入空行,并进入插入模式。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 6.2:附加文本命令
` a `命令在当前光标位置之后进入插入模式。
` e `命令可以跳转到下一个单词的最后一个字符。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 6.3:其他替换方式
` R `命令可以进入替换模式,类似键盘上的<insert>按键。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 6.4:文本的复制和粘贴
` y `命令用来对选中内容复制,` p `命令用来将复制的内容粘贴到光标位置。
可以使用` yw `命令来复制一个单词。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 6.5:选项设置
设置查找替换命令忽略字母大小写
` :set `命令用来设置vim的选项内容。
` :set ic `设置忽略大小写
` :set hls `设置查找内容高亮
` :set is `和` :set incsearch `设置???
如果只想设置本次查找忽略大小写,可以在命令最后添加` \c `
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 6 小结
1. ` o `命令将将光标所在行的下一行插入空行,并进入插入模式。
` O `命令将将光标所在行的上一行插入空行,并进入插入模式。
2. ` a `命令将在光标所在为位置之后进入插入模式。
` A `命令将在光标所在行的行末进入插入模式。
3. ` e `命令移动光标到当前单词的最后一个字符。
4. ` y `命令用来复制选中内容,` p `命令用来粘贴内容。
5. ` R `命令可以进入替换模式。
6. ` :set xxx `命令用来设置vim选项。如:
'ic' 'ignorecase' 查找时忽略字符大小写
'is' 'incsearch' show partial matches for a search phrase
'hls' 'hlsearch' 高亮匹配到的内容
7. 可以在选项前加`no`来关闭选项内容,如:` :set noic `
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 7.1:获取help内容
vim提供一下三种方式来获取help信息
- <HELP> 按键
- <F1> 按键
- ` :help `命令
` CTRL-W CTRL-W `将光标从一个窗口移动到另一个窗口。
此外可以查看单个命令命令的help信息,如:
:help w
:help c_CTRL-D
:help insert-index
:help user-manual
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 7.2:创建一个vim启动配置脚本
Linux环境下,vim启动时会读取~/.vimrc文件中的配置内容。
1. 使用vim打开~/.vimrc文件;
2. 读取vim提供的vimrc文件:
:r $VIMRUNTIME/vimrc_example.vim
3. 写入文件到磁盘:
:w
当你下一次打开vim时,.vimrc配置文件中的内容会生效。
` :help vimrc-intro `可以获取更多相关内容。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 7.3:补齐功能
` CTRL - D `命令可根据以输入的内容提供显示联想内容。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 7 小结
1. ` :help` 或者 <F1> 或者 <Help> 可以打开help窗口。
2. ` :help cmd `查看cmd的帮助信息。
3. ` CTRL-W CTRL-W `将光标从一个窗口移动到另一个窗口。
4. ` :q `可以关闭help信息窗口。
5. 配置.vimrc文件会在每次vim打开时被读取。
6. 命令行模式下,`CTRL - D`命令可以根据以输入的内容联想可能输入。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
网友评论