VIM
参考资料
- 《鸟哥的私房菜》
-
三个模式
一般指令模式(command mode)
编辑模式(insert mode)
指令行模式(command-line mode)
使用
移动光标
命令 |
说明 |
hjkl |
左下上右 |
[ctrl] + f/b |
向下/上移动一页 |
[ctrl] + d /u |
向下/上移动半页 |
+/- |
移动到非空格符的下/上一行 |
n<space> |
20<space> ,光标会后面移动20个字符的距离 |
^/0/g_/$ |
一行中移动 |
H/M/L |
屏幕中移动 |
gg/G |
定位到首行/尾行 |
n<Enter>/nG/:n |
定位到第n行(n<Enter> 向下移n行,nG/:n定位到第n行 ) |
|
|
|
|
查找与替换
命令 |
说明 |
/word或?word |
从光标之处向下/上查找word |
n/N |
下一个/上一个 |
:n1,n2s/word1/word2/gc |
从第n1行到n2行,将word1替换为word2,c 表示替换前需要确认 |
|
|
|
|
|
|
|
|
|
|
|
|
删除、复制与粘贴
命令 |
说明 |
x/X |
向后/前删除一个字符 |
nx |
向后连续删除n个字符 |
dd |
删除整行 |
ndd |
向下删除n行 |
d1G/dG/d$/d0 |
|
yy |
复制当前行 |
nyy |
向下复制n行 |
y1G/yG/y$/y0 |
|
p/P |
粘贴到下/上一行 |
J |
当前行与下一行合并 |
c |
重复删除多个数据 |
u |
复原上一个动作 |
[ctrl] + r |
重做上一个动作 |
. |
重复前一个动作 |
模式切换
命令 |
说明 |
i,I/a,A/o,O/r,R |
|
[Esc] |
|
指令行模式的存储、离开
命令 |
说明 |
:w/:q/:w!/:q!/:wq |
|
ZZ |
:wq |
:w [filename] |
|
:r [filename] |
|
n1,n2 w [filename] |
|
:! command |
|
|
|
|
|
|
|
区块选择
命令 |
说明 |
v/V/[Ctrl] + v |
字符选择/行选择/区块选择 |
y/d/p |
复制/删除/粘贴 |
|
|
|
|
环境变量与配置
命令 |
说明 |
:set nu/:set nonu |
|
:set all |
|
# 配置文件
/etc/vimrc
~/.vimrc
~/.viminfo
" 这个文件的双引号(")是注释
set nu " 显示行号
set hlsearch " 高亮反白
set backspace=2 " 随时可用退格键删除
set autoindent " 自动缩排
set backup " 自动备份 filename~
set ruler " 显示最后一列的状态
set showmode " 显示 --INSERT-- 之类的在左下角的状态栏
set bg=dark " 背景色
syntax on " 进行语法检验,颜色显示
暂存档、救援回复
多文件编辑
多窗口功能
补全功能
命令 |
说明 |
[ctrl] + x -> [ctrl] + n |
当前正在编辑的这个文件的内容的文件作为关键词 |
[ctrl] + x -> [ctrl] + f |
当前目录内的文件名作为关键词 |
[ctrl] + x -> [ctrl] + o |
以扩展名作为语法补充,以vim内键的关键词 |
命令图
注意事项
案例
一个案例
http://linux.vbird.org/linux_basic/0310vi/man_db.conf
http://linux.vbird.org/linux_basic/0310vi/hosts
闯关
- hjkl左下上右
- w下一个单词的单词头
e下一个单词的单词尾
b上一个单词的单词