vim 常用基本

vim 基本操作


0. 基本操作

:w          // 保存当前文件
:q          // 退出vim
:wq         // 保存退出
:w!         // 强制保存当前文件
:q!         // 强制退出(可以忽略修改)
:!cmd       // 执行shell命令cmd
:n1,n2 w!cmd    // 将文件中第n1行至n2行的内容作为cmd输入并执行, 若不指定n1,n2, 则表示将整个文件内容作为cmd的输入


i       // 在光标前进入插入模式
I       // 在当前行行首进入插入模式
a       // 在光标后进入插入模式
A       // 在当前行行尾进入插入模式
o       // 在当前行的下一行新开一行进入插入模式
O       // 在当前行的上一行新开一行进入插入模式
r       // 替换光标下的字符进入插入模式
s       // 删除光标下字符并进入插入模式
S       // 删除当前行并进入插入模式

 

1. 移动光标命令

nh           // 向左移n个字符
nl           // 向右移n个字符
nk           // 向上移n行
+j           // 向下移n行
// 不加n默认n为1

space       // 右移一个字符
backspace   // 左移一个字符

ctrl + e    // 向上滚动一行 
ctrl + y    // 向下滚动一行

nw(W)        // 向右移动n个单词至词首
nb(B)        // 向左移动n个单词至词首
ne(E)        // 向右移动n个单词至词尾
// 小写: 符号分隔的为一个单词
// 大写: 空格分隔的为一个单词
// 不加n默认n为1
// # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 

)           // 移动至句尾
(           // 移动至句首
{           // 移动至段落开头
}           // 移动至段落结尾

gg          // 移动至文件第一行
G           // 移动至文件最后一行
nG          // 移动至第n行
n+          // 向下移n行
n-          // 向上移n行

H           // 移至屏幕顶行
M           // 移至屏幕中间行
L           // 移至屏幕底行

0           // 移至当前行首
$           // 移至当前行尾
^           // 移至当前行第一个非空白字符

ctrl + f    // 向下翻一页
ctrl + b    // 向上翻一页
ctrl + d    // 向下翻半页
ctrl + u    // 向上翻半页

nzt         // 将第n行移至屏幕顶部
nzz         // 将第n行移至屏幕中间
nzb         // 将第n行移至屏幕底部
// 不指定n时, 默认移动当前行
// # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 

 

2. 搜索命令

/pattern            // 从光标处向下搜索pattern
?pattern            // 从光标处向上搜索pattern
n                   // 在同方向重复上一次搜索命令
N                   // 在反方向重复上一次搜索命令

fc                  // 在光标位置向右搜索字符c
Fc                  // 在光标位置向左搜索字符c
;                   // 同方向重复上次搜索字符命令

 

3. 替换命令

:s/p1/p2/g          // 将当前行中所有p1均用p2替换
:n1,n2s/p1/p2/g     // 将第n1行至第n2行中所有p1均用p2替换
:g/p1/s//p2/g       // 将文件中所有p1均用p2替换
// 不加g时, 只替换匹配到行的第一个匹配项

 

4. 拷贝/删除

nyy         // 从当前行开始向下复制n行
ndd         // 将当前行及其以下共n行内容删除, 并将删除内容放到1号删除寄存器中.
p           // 粘贴(从光标位置)

// 不加n表示复制(删除)一行(单词)

// d(删除),y(复制)可以与移动命令组合使用
// 例如 ynw 复制光标位置向右n个单词. ynj 复制当前行至向下n行. dnk 删除当前行至向上n行

:n1,n2 co n3    // 将第n1行至第n2行的内容拷贝到第n3行下面
:n1,n2 m n3     // 将第n1行至第n2行的内容移动到第n3行下面
:n1,n2 d        // 将第n1行至第n2行的内容删除

 

 

5. 参考

1. https://www.isplaying.cn/jiaocheng/vim-command-1.html

 

posted @ 2019-12-12 18:13  丁方  阅读(199)  评论(0编辑  收藏  举报