您的位置:首页 > 其它

Vim command handbook

2015-10-28 18:37 204 查看
/* 本篇文章已经默认你通过了vimtuor训练并能熟练使用大部分命令.此篇文章主要是对于tutor命令的总结和梳理.适合边学习边记忆 tutor那个完全是在学习中记忆 符合认知规律但是练习有限.所以这时候选择记忆起来.用到时顺便练习看起来是个更效率的做法 */

VIM的四种模式
Normal 普通模式,也有叫一般模式.命令模式的 控制光标的艺术
Insert 插入模式,也有叫编辑模式的
command line 命令行模式,有叫末行模式的
Visual 可视模式 这个应该没争议

Insert 插入模式
i 光标前插入
a 光标后插入
A 行尾插入
I 行首插入
o 在下一行插入新行
O 在上一行插入新行 (大写)
s 删除当前光标并进入插入模式
S =cc 删除光标所在行所有内容并进入插入模式 (大写)
cc 删除光标所在行所有内容并进入插入模式
C = c$ 删除光标后所有内容并进入插入模式
c0 删除光标前所有内容并进入插入模式
c3c = 3cc 删除3行并进入插入模式
c2b = d2b+i 删除光标前2个字符并进入插入模式
c2w = d2w+i 删除光标后2个字符并进入插入模式

Visual 可视模式 Visual block 可视块
v 光标选择
V 行选择 (大写)
Ctrl+v 块选择
d 删除选择内容
y 复制选择内容
: '<,'> w 文件名/绝对路径

command line 命令行模式,有叫末行模式的
:w 保存
:w! 强制保存
:q 退出
:q! 强制退出
:wq 保存退出
:wq! 强制保存退出
:ZZ 如果有改动就保存退出.如果没改动不保存退出.
:e! 恢复上一次存储的内容,撤销所有改动.
:w 文件名/绝对路径 将文件另存为
:r 文件名/绝对路径 读取文件内容并将其粘贴到光标所在行后面
:n1,n2 w 文件名/绝对路径 将n1,n2之间的内容另存为
:!command linux下可以执行shell命令windows下可以执行cmd命令
按任意键继续,推荐按回车
:r !command 读取命令的输出 插入到当前文本中
字符串替换
s/old/new 替换一行的第一个字符串 old为new
s/old/new/g 替换全行的字符串old为new
%s/old/new/g 替换所有行的字符串 old为new
%s/old/new/gc 替换所有行的字符串 old为new 并弹出每个字符串替换的确认信息
我猜这个g是 globe c是confirm
:set all vim 查看Vim目前正在使用的选项

Normal 普通模式
/String 向下搜索字符串 n下一个 N上一个
?String 向上搜索字符串
搜索字符串时开启一次忽略大小写
?string\c
/string\c
-----------------------------------------------------------------------
operator - 操作符,代表要做的事情,比如 d 代表删除
numbe r- 可以附加的数字,代表动作重复的次数
motion - 动作,代表在所操作的文本上的移动,例如 w 代表单词(word), $ 代表行末等等。
------------------------------------------------------------------------
number motion
数字 动作

operator number motion
命令 数字 动作

------------------------------------------------------------------------
$光标跳到行尾
0光标跳到行首
H 光标移动到屏幕最上方的一行
M 光标移动到屏幕中间的一行
L 光标移动到屏幕最下方的一行
dd 删除一行
x 删除光标后一个字符
X 删除光标前一个字符
u执行一次撤销命令
U恢复本行的初始状态
Ctrl+R 撤销 '撤销命令'
J 合并行 删除掉两行之间的空白
yy 复制一行
p 在光标下一行粘贴
P 在光标上一行粘贴
r 替换单个错误字符
R 连续替换多个字符
~ 切换当前字符大小写
w移动到单词的开头
e移动到单词的结尾
Ctrl+G 显示光标所在行和状态信息
gg 跳到第一行
G 跳到最后一行
80gg 跳到第80行 或者80 G
Enter 将光标移动到下一行的第一行
z Enter 滚动屏幕并将当前行移动到屏幕第一行
. (点) 重复上一个动作
----------------------------------------------------------------
number motion
数字 动作
------------------------------------------------------------------------
2x删除光标后2个字符
1j 光标向下移动1行
1k 光标向上移动1行
1h 光标向左移动1行
1l 光标向右移动1行
3p 粘贴3次p的内容
cw 删除当前光标到单词末尾并自动进入插入模式 (修改一个词)
ce=cw
d$ 删除光标后内容,但不会进入插入模式
d0 删除光标前内容,但不会进入插入模式
y$ 复制光标后内容
y0 复制光标前内容
dw 删除一个单词包括单词后面空格
de 删除一个单词不包括后面空格
2dd 删除4行
2yy 复制2行
2w 向右移动到2个单词的开头
2e 向右移动到2个单词的结尾
------------------------------------------------------------------------
operator number motion
命令 数字 动作
------------------------------------------------------------------------
c2e 删除2个单词后进入插入模式
c10j 向下删除10行并进入插入模式
d2w 删除两个单词
y2w 复制两个单词
y3y = 3yy 复制3行
d4d = 4dd 删除4行
d1gg = d1G 删除从光标所在行向上到1行之间的所有内容(包括光标所在行和第1行)y1gg = y1G 复制从光标所在行向上到1行之间的所有内容(包括光标所在行和第1行)
dG 删除从光标所在行向下的所有内容(包括光标所在行)
yG 复制从光标所在行向下的所有内容(包括光标所在行)

---------------------------------------------------------------
Ctrl 组合键
----------------------------------------------------------------
CtrL O 返回刚才光标所在位置 可重复按
CtrL I 返回ctrl O上一个位置
CtrL F 向下移动一页
CtrL D 向下移动半页
CtrL B 向上移动一页
CtrL U 向上移动半页

还有其他命令可以自然的组合起来.例如ea 在一个单词后插入.更多命令组合需要自己感悟并努力练习形成神经反射.

vim环境参数设置: 编辑 vimrc 文件,具体命令取决于您所使用的操作系统
:edit ~/.vimrc 这是 Linux系统所使用的命令
:edit $VIM/_vimrc 这是 Windows 系统所使用的命令

设置行号
开启 set nu
关闭 set nonu

查找字符串忽略大小写
开启 set ic
关闭 set noic

字符串高亮
hlsearch 开启
nohlsearch 关闭

一边搜索一边显示搜索的内容
set incsearch 开启
set noincsearch 关闭

'ic' 'ignorecase' 查找时忽略字母大小写
'is' 'incsearch' 查找短语时显示部分匹配
'hls' 'hlsearch' 高亮显示所有的匹配短语
选项名可以用完整版本,也可以用缩略版本。

设置自动缩进
:set autoindent 开启
:set noautoindent 关闭

设置是否显示insert等模式提示
:set showmode 开启
:set no showmode 关闭

设置语法高亮
:syntax on 开启
:syntax off 关闭
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: