文本编辑器Vim/Vi
www.vim.org(官网)
命令模式进入插入模式:i,a,o
a 在光标后附加文本
A 在本行行末附加文本
i 在光标前插入文本
I 在本行开始插入文本
o 在光标下插入新行
O 在光标上插入新行
h,方向左键 左移一个字符
j,方向下键 下移一行
k,方向上键 上移一行
l,方向右键 右移一个字符
$ 移至行尾
0 移至行首
H 移至屏幕上端
M 移至屏幕中央
L 移至屏幕下端
:set nu 设置行号
:set nonu 取消行号
gg 到第一行
G 到最后一行
nG 到第n行
:n 到第n行
x 删除光标所在处字符
nx 删除光标所在处后n个字符
dd 删除光标所在行,ndd删除n行
dG 删除光标所在行到末尾的内容
D 上处从光标所在行到行尾
:n1,n2d 删除指定范围的行 例:“:55,58d”
yy,Y 复制当前行
nyy,nY 复制当前行以下n行
dd 剪切当前行
ndd 剪切当前行以下n行
p,P 粘贴在当前光标所在行下(p)或行上(P)
r 取代光标所在字符
R 从光标所在处开始替换字符,按Esc结束
u 取消上一步操作
/string 向前搜索string,搜索时忽略大小写:set ic
关闭上面的命令:set noic
n 搜索指定字符串的下一个出现位置
N 与n的顺序相反
:%s/old/new/g 全文替换指定字符串
:n1,n2s/old/new/g 在一定范围内替换指定字符串
命令最后的g表示替换是不提问,如果换成c,则会提问
保存退出 :wq ZZ
强行保存退出 :wq!(只有文件所有者或root)
不保存退出 :q!
保存不退出 :w
其他技巧
:r [文件名] 导入其他文件
:! [命令] 执行命令
使用示例:
:r !date
:map ^P I#<ESC> 注意:^P是使用 ctrl+V+P 或者ctrl+V ctrl+P打出的,不是shift+6
这个命令表示:用I进入插入模式(光标放到行首),输入一个#,之后按下Esc退出插入模式(这个在我的机器上不好使,<ESC>无法被识别成esc键,而是打出文本<ESC>)
:map ^B 0x
www.vim.org(官网)
命令模式进入插入模式:i,a,o
插入命令
A 在本行行末附加文本
i 在光标前插入文本
I 在本行开始插入文本
o 在光标下插入新行
O 在光标上插入新行
定位命令
j,方向下键 下移一行
k,方向上键 上移一行
l,方向右键 右移一个字符
$ 移至行尾
0 移至行首
H 移至屏幕上端
M 移至屏幕中央
L 移至屏幕下端
:set nu 设置行号
:set nonu 取消行号
gg 到第一行
G 到最后一行
nG 到第n行
:n 到第n行
删除命令
nx 删除光标所在处后n个字符
dd 删除光标所在行,ndd删除n行
dG 删除光标所在行到末尾的内容
D 上处从光标所在行到行尾
:n1,n2d 删除指定范围的行 例:“:55,58d”
复制和剪切命令
nyy,nY 复制当前行以下n行
dd 剪切当前行
ndd 剪切当前行以下n行
p,P 粘贴在当前光标所在行下(p)或行上(P)
替换和取消命令
R 从光标所在处开始替换字符,按Esc结束
u 取消上一步操作
搜索和替换命令
关闭上面的命令:set noic
n 搜索指定字符串的下一个出现位置
N 与n的顺序相反
:%s/old/new/g 全文替换指定字符串
:n1,n2s/old/new/g 在一定范围内替换指定字符串
命令最后的g表示替换是不提问,如果换成c,则会提问
保存退出的命令
强行保存退出 :wq!(只有文件所有者或root)
不保存退出 :q!
保存不退出 :w
其他技巧
:r [文件名] 导入其他文件
:! [命令] 执行命令
使用示例:
:r !date
导入当前时间
自定义快捷键
这个命令表示:用I进入插入模式(光标放到行首),输入一个#,之后按下Esc退出插入模式(这个在我的机器上不好使,<ESC>无法被识别成esc键,而是打出文本<ESC>)
:map ^B 0x