1.启动与退出
1)vi filename (启动vim)
2)命令行模式下 :wq=> 保存并退出,:q!=>强行退出,:e!=>放弃修改文件内容,重新载入该文件,:x=>退出,文件更改并保存,ZZ=>同:x命令 (退出vim)
2.基本设置-命令行模式下
- :set nu 显示行号
- :syn on 显示语法高亮
- :set shiftwidth=4 设置自动缩进 4个空格, 当然要设自动缩进先.
- :set sts=4 即设置 softtabstop 为4. 输入 tab 后就跳了 4 格.
- :set tabstop=4 实际的 tab 即为 4个空格, 而不是缺省的 8 个.
- :set expandtab 在输入 tab 后, vim用恰当的空格来填充这个 tab.
- :setsuffixes=.bak,~,.o,.h,.info,.swp,.aux,.bbl,.blg,.dvi,.lof,.log,.lot,.ps,.toc
- 在vim中打开文件时, 按 tab键补齐文件名时它会忽略上述文件.
- :set enc=utf-8设置文字编码
设置配置文件:
:scriptnames 列出配置文件.vimrc所在的目录
:version 用户所用的配置文件.vimrc的位置
$ 当前行的末尾
0 当前行的开头
^ 当前行第一个字母
gg 文件头
G 文件尾
`` 回到光标跳转前的位置
H 跳到屏幕上的第一行
M 跳到屏幕的中间行
L 跳到屏幕上的最后一行
w: 光标以单词向前移动至单词第一个字母
b: 与w相反,向后移动至单词的第一个字母
e: 光标以单词向前移动至单词最后一字母
ge: 与e相反,向后移动至单词的最后一字母
%: 移动到与制匹配的括号上去(),{},[],<>等
CTRL+G 得到当前光标在文件中的位置
向下翻页(pagedown): CTRL+f
向上翻页(pageup): CTRL+b
向下移动半屏:CTRL+d
向上移动半屏:CTRL+u
补记:
. 光标定位(普通模式、可视模式)$ 当前行的末尾0 当前行的开头^当前行第一个字母gg 文件头G 文件尾`` 回到光标跳转前的位置H跳到屏幕上的第一行M 跳到屏幕的中间行L 跳到屏幕上的最后一行w:光标以单词向前移动至单词第一个字母b:与w相反,向后移动至单词的第一个字母e:光标以单词向前移动至单词最后一字母ge:与 e相反,向后移动至单词的最后一字母%:移动到与制匹配的括号上去()...
光标定位技巧的补充:
'' 同`` -- 此命令相当有用, 它移动光标到上一个标记处, 比如用 gd, *等查
找到某个单词后, 再输入此命令则回到上次停留的位置.
'. -- 此命令相当好使, 它移动光标到上一次的修改行.
`. -- 此命令相当强大, 它移动光标到上一次的修改点.
补记:
行号+G 跳转到指定行
fx 向右跳到本行字符x处(x可以是任何字符)
Fx 向左跳到本行字符x处(x可以是任何字符)
tx 和fx相同,区别是跳到字符x前
Tx 和Fx相同,区别是跳到字符x后
4.删除和复制(普通模式、可视模式)
删除:
- dd: 删除一行
- dw: 删除一个单词,需将光标移到单词的第一个字母。
- d$: 删除当前光标到该行的行尾的字母
- daw: 删除一个单词,光标在单词任意位置
- dnw: 删除N个单词
- dnj: 向下删除n行
- dnk: 向上删除n行
- J: 删除换行符,将光标移到改行,按shift+j删除行尾的换行符,下一行接上来了。
复制:
- yy: 复制一行
- yw: 复制一个单词,需将光标移到单词的第一个字母。
- yaw: 复制一个单词,光标在单词任意位置
- ynw: 复制N个单词
- ynj: 向下复制n行
- ynk: 向上复制n行
修改:
- cl: 更改当前字符
- cw: 修改当前单词到结尾
- cc: 修改当前行
粘贴:p,粘贴用x、d、y操作的文本
可视模式下的方式:
可视模式下,选中要编辑的文字,可执行d、y,操作。
寄存器下的操作:
在复制前可以先指定一个寄存器,方法是在双引号后跟一个字母,例如"a指定了寄存器a,"B指定了寄存器B。所以,"ayy把当前行放进了寄存器a,以后就可以用"ap来粘贴寄存器a里的内容了。如果不确定寄存器里放了什么内容,可以使用:reg来查看。
Vim提供了一个很有用的特殊寄存器"+,它的内容就是系统剪贴板的内容。可以在Vim里用"+p粘贴出来。
5.多文件操作
- :ls (:buffers) 显示buffer列表
:bn 转到下一个buffer
:bp 转到上一个buffer
:b3 转到编号为3 的buffer
:bindex.html 转到名为index.html的buffer
:sav 另存为……
:sethidden 切换buffer时不给出保存当前buffer的提示
CTRL-G 查看当前buffer状态信息,如文件名、总行数、修改后未保存等。 - :sp(:vsp) 文 件名 vim 将分割出一个横(纵)向窗口, 并在该窗口中打开新文件.从 vim6.0开始, 文件名可以是一个目录的名称,把该目录打开并显示文件列表,在文件名上按回车则在本窗口打开该文件, 若输入O则在新窗口中打开该文件, 输入 ?可以看到帮助信息 。
- :e文件名 vim 将在原窗口中打开新的文件, 若旧文件编辑过,会要求保存.
- c-w-w(即 ctrl键与 w 键一同按下) vim 割了好几个窗口怎么办?输入此命令可以将光标循环定位到各个窗口之中.c-w-h光标到左窗口,c-w-j下窗口,c-w-k上窗口,c-w-l右窗口。
- ls 此命令查看本vim 程序已经打开了多少个文件, 在屏幕的最下方会显示出如下数据:
1 %a "usevim.html" 行 162
2 # "xxxxxx.html" 行0 - 其中: 1 表示打开的文件序号, 这个序号很有用处.
%a 表示文件代号, % 表示当前编辑的文件,
# 表示上次编辑的文件
"usevim.html" 表示文件名.
行162 表示光标位置.:b序号(代号) 此命令将指定序号(代号)的文件在本窗口打开, 其中的序号(代号)
就是用 :ls 命令看到的. - :setdiff 此命令用于比较两个文件, 可以用
:vsp filename
命令打开另一个文件, 然后在每个文件窗口中输入此命令,就能看
到效果了.