序言
Vim有着非常陡峭的学习曲线,要掌握它需要长时间的练习。打算记录一些Vim的常用基础键,方便后期查阅,帮助入门的新手。
第一讲
第一节:移动光标
^
k
< h l >
j
v
h 的键位于左边,每次按下就会向左移动。
l 的键位于右边,每次按下就会向右移动。
j 键看起来很象一支尖端方向朝下的箭头。
提示:光标键应当也能正常工作的。但是使用hjkl键,在习惯之后你就能够更地在屏幕内四处移动光标。
第二节:Vim的进入和退出
vim filename 用vim打开fliename
:q! 强制退出。
这种退出编辑器的方式会丢弃你进入编辑器以来所做的改动。
:wq 以保存文件并退出。
这种退出编辑器的方式会保存你进入编辑器以来所做的改动,将其写入到文件中。
第三节:文本编辑之插入,添加
在正常模式下,可以按下 i 键来插入文本。
在正常模式下,可以按 A 键输入必要的添加内容。
在正常模式下输入 o 将在光标的下方打开新的一行并进入插入模式。
第四节:文本编辑之删除
正常(Normal)模式下,可以按下 x 键来删除光标所在位置的字符,按下X可以删除光标所在的前字符。
输入 dw 可以从光标处删除至一个单词的末尾。
输入de删除到本单词末尾。
输入dE删除到本单词末尾包括标点在内。
输入db删除到前一个单词。
输入dB删除到前一个单词包括标点在内。
输入 ndw 删除以当前字符开始的n个字。
输入d0 删至行首。
输入 d$ 从当前光标删除到行末。
输入 dG从当前行删除至最末。
输入 dd 删除一行。
输入 ndd 删除以当前行开始的n行。
输入d) 删除到下一句的开始。
输入d} 删除到下一段的开始。
在vim中许多改变文本的命令都由一个操作符和一个动作构成。即命令与对象。
使用删除操作符 d 的删除命令的格式如下:
d motion
其中:
d - 删除操作符。
motion - 操作符的操作对象(在下面列出)。
一个简短的动作列表:
w - 从当前光标当前位置直到下一个单词起始处,不包括它的第一个字符。
e - 从当前光标当前位置直到单词末尾,包括最后一个字符。
$ - 从当前光标当前位置直到当前行末。
因此输入 de 会从当前光标位置删除到单词末尾。
第五节:文本编辑之撤销
输入 u 来撤消最后执行的命令,输入 U 来撤消对整行的修改。
多次输入 CTRL-R (先按下 CTRL 键不放开,接着按 R 键),这样可以重做被撤消的命令,也就是撤消掉撤消命令。
第二讲
第一节:使用计数制定动作
在正常模式下输入 2w 可以使光标向前移动两个单词。
输入 3e 可以使光标向前移动到第三个单词的末尾。
输入 0 (数字零) 可以移动光标到行首。
使用操作符时输入数字可以使它重复那么多次。如第一讲第三节中的删除命令d,可以在组合动作之前插入一个数字以删除更多:
d number(数字) motion
如输入d2w可以删除两个大写字母单词。
在正常模式下修改命令的格式是:
operator [number] motion
其中:
operator - 操作符,代表要做的事情,比如 d 代表删除
[number] - 可以附加的数字,代表动作重复的次数
motion - 动作,代表在所操作的文本上的移动,例如 w 代表单词(word), $ 代表行末等等。
第二节:文本编辑之复制
使用操作符 y 复制文本,使用 p 粘贴文本
输入 p可将最后一次删除的内容置入光标之后。
第三节:文本编辑之替换
输入 r 和一个字符替换光标所在位置的字符。
输入大写的 R 可连续替换多个字符。
要改变文本直到一个单词的末尾,输入 ce
更改类操作符可以与删除中使用的同样的动作配合使用。其操作格式是:
c [number] motion
动作参数(motion)也是一样的,比如 w 代表单词,$代表行末等等。
第三讲
第一节:定位及文件状态
输入 CTRL-G 显示当前编辑文件中当前光标所在行位置以及文件状态信息。按下 CTRL 键不放开然后按 g 键。你会看到页面最底部出现一个状态信息行,显示的内容是当前编辑的文件名和文件中光标位置。
输入大写 G 可以使得当前光标直接跳转到文件最后一行。
输入 gg 可以使得当前光标直接跳转到文件第一行。
输入曾停留的行号,然后输入大写 G。这样就可以返回到第一次按下CTRL-G 时所在的行了。
第二节:搜索类命令
输入 / 加上一个字符串可以用以在当前文件中查找该字符串。
要查找同上一次的字符串,只需要按 n 键。要向相反方向查找同上一次的字符串,输入N即可。
如果想逆向查找字符串,用 ? 代替 / 进行。
要回到之前的位置按 CTRL-O (按住 Ctrl 键不放同时按下字母 o)。重复按可以回退更多步。CTRL-I 会跳转到较新的位置。
第三节:配对括号的查找
输入 % 可以查找配对的括号 )、]、}。
把光标放在配对的括号处然后按 % 键,即可跳转到配对的括号处。
再次按 % 就可以跳回配对的第一个括号处。
第四节:替换命令
输入 :s/old/new/g 可以替换 old 为 new。
输入 :s/old/new。该命令只改变光标所在行的第一个匹配串。
输入 :s/old/new/g 则是替换全行的匹配串,该行中所有的 “old” 都会被改变。
要替换两行之间出现的每个匹配串,请:
输入 :#,#s/old/new/g 其中 #,# 代表的是替换操作的若干行中首尾两行的行号。
输入 :%s/old/new/g 则是替换整个文件中的每个匹配串。
输入 :%s/old/new/gc 会找到整个文件中的每个匹配串,并且对每个匹配提示是否进行替换。
第四讲
第一节:在 VIM 内执行外部命令的方法
输入 :! 然后紧接着输入一个外部命令可以执行该外部命令。
提示:所有的外部命令都可以以这种方式执行,包括带命令行参数的那些。
第二节:关于保存文件
要将对文件的改动保存到文件中,请输入 :w FILENAME 。该命令会以 TEST 为文件名保存整个文件。
要保存文件的部分内容,请输入 v motion :w FILENAME。
按 v 键进入可视模式,选择要保存的文本,然后按: 字符。你将看到屏幕底部会出现:’<,’> 。
然后输入 w TEST,这时 Vim 会把选中的行写入到以 TEST 命名的文件中去。
第三节:提取和合并文件
要向当前文件中插入另外的文件的内容,输入:r FILENAME。
:r FILENAME 可提取磁盘文件 FILENAME 并将其插入到当前文件的光标位置。
第四节:设置类命令的选项
设置可使查找或者替换可忽略大小写的选项。
输入: :set ic,可忽略大小写查找单词。要禁用忽略大小写,可输入: :set noic
提示:如果你想要仅在一次查找时忽略字母大小写,可以使用 \c: /ignore\c