Linux-Vim 快捷键

Vim 键位整理
  • <space> 空格键
  • <cr> 回车
  • <c-f> 表示 <ctrl>f 的组合键

写入、保存、退出

:q[uit]                 " 退出
:q!                     " 强制退出
:w[rite]                " 保存
:w!                     " 强制保存,能不能保存成功取决于用户对文件的权限
:w ! sudo tee %         " 如果没有权限保存,试试这个命令
ZZ                      " 两个大写的 Z,没有修改直接退出,有修改保存后退出

:w newfilename          " 另存为新文件
:1, 10 w newfilename    "110 行的内容另存为新文件
:1, 10 w >> filename    " 将 1 到 10 行的内容另存为新文件
:r filename             " 将目标文件的内容追加到当前光标下一行
:3 r filename           " 将目标文件的内容追加到第 3 行一下

:! ls                   " 暂时离开 Vim 查看当前目录的文件,回车后返回 Vim

光标移动

h           " 方向键 ←
j           " 方向键 ↓
k           " 方向键 ↑
l           " 方向键 →

0           " 移动到行首
$           " 移动到行尾的回车符
g_          " 移动到行尾最后一个非空字符
gg          " 移动到第一行
G           " 移动到最后一行"

w           " 移动到下一个单词开头
e           " 移动到单词的结尾
b           " 移动到单词的开头

" 不常用
nh          " 向左移动 n 格,n 为数字
nl          " 向右移动 n 格
nj          " 向下移动 n 行
nk          " 向上移动 n 行
n<space>    " 向右移动 n 格,同 nl

H	        " 移动到当前屏幕第一行的第一个字符
M	        " 移动到当前屏幕中间行的第一个字符
L	        " 移动到当前屏幕最后一行的第一个字符
+	        " 移动到非空白字符的下一行
-	        " 移动到非空白字符的上一行

:n<cr>      " 跳转到第 n 行

翻页

<c-f>   " 向下移动一页
<c-d>   " 向下移动半页
<c-b>   " 向上移动一页
<c-u>   " 向上移动半页

查找与替换

/word   " 从光标位置向下搜索 word 单词
?word   " 从光标位置向上搜索 word 单词
n       " 英文字母 n,根据 / 或 ? 搜索的方向定位到下一个匹配目标
N       " 与 n 相反,定位匹配目标

:n1,n2s/word1/word2/g   " n1, n2 表示数字,替换 n1 行到 n2 行的单词
:1,$s/word1/word2/g     " 全文替换,也可以写成 :%s/word1/word2/g
:1,$s/word1/word2/gc    " 全文替换,并出现确认提示

复制、粘贴、删除

x           " 向后删除一个字符
nx          " 向后删除 n 个字符
X           " 向前删除一个字符
nX          " 向前删除 n 个字符

dd          " 删除当前行
ndd         " 向下删除 n 行
d1G / dgg   " 删除第一行到当前行的数据
dG          " 删除当前行到最后一行的数据
d$          " 删除当前字符到行尾
D           " 删除当前字符到行尾
d0          " 从行首删除到当前字符

yy          " 复制当前行
Y           " 复制当前行
nyy         " 从当前行开始复制 n 行
y1G / ygg   " 从第一行复制到当前行
yG          " 从当前行复制到最后一行
y0          " 从行首复制到当前字符
y$          " 从当前字符复制到行尾

p, P        " 黏贴,p 黏贴到光标下一行,P 黏贴到光标上一行
yyp         " 复制并粘贴
ddp         " 删除并粘贴,相当于下移当前行


"+y         " 复制本文到系统剪切板
"+p         " 粘贴系统剪切板到 Vim(不会影响文本格式)

插入

i   " 在光标前进入 insert 模式
I   " 在当前行左边第一个非空字符前进入 insert 模式,类似其他编辑器的 <c-a> 快捷键
a   " 在光标后进入 insert 模式
A   " 在当前行右边第一个非空字符前进入 insert 模式,类似其他编辑器的 <c-e> 快捷键
o   " 在光标的下一行插入
O   " 在光标的上一行插入
s   " 删除当前字符,并进入 insert 模式
S   " 删除当前行,并进入插入模式

vc  " 删除当前字符,并进入 insert 模式
cc  " 删除当前行,并进入插入模式
c0  " 删除光标位置到行首,并进入 insert 模式
cg_ " 删除光标位置到行尾最后一个非空字符,并进入 insert 模式
ce  " 删除光标位置到单词末尾,并进入 insert 模式
cw  " 删除光标位置到单词末尾,并进入 insert 模式
ciw " 删除当前单词,并进入 insert 模式
cip " 删除整个段落,并进入 insert 模式
ci( " 删除当前括号内的内容,并进入 insert 模式 适用于 ([{<'` 等所有成对的标签


撤销重做

u       " 撤销
<c-r>   " 重做
.       " 重复完成操作

替换

~       " 当前字符大小写反转
g~~     " 正行字符大小写反转
vu      " 当前字符小写
vU      " 当前字符大写
vU      " 当前字符大写
viwu    " 当前字符小写
viwU    " 当前字符大写
ggguG   " 文本所有字符小写
gggUG   " 文本所有字符大写

:%s/\<./\u&/g       " 将所有单词首字母大写(需要使用 :nohls 去掉高亮)
:%s/\<./\l&/g       " 将所有单词首字母小写
:%s/.*/\u&          " 将每行第一个字母大写
:%s/.*/\l&          " 将每行第一个字母小写

大小写

~       " 当前字符大小写反转
g~~     " 正行字符大小写反转
vu      " 当前字符小写
vU      " 当前字符大写
vU      " 当前字符大写
viwu    " 当前字符小写
viwU    " 当前字符大写
ggguG   " 文本所有字符小写
gggUG   " 文本所有字符大写

:%s/\<./\u&/g       " 将所有单词首字母大写(需要使用 :nohls 去掉高亮)
:%s/\<./\l&/g       " 将所有单词首字母小写
:%s/.*/\u&          " 将每行第一个字母大写
:%s/.*/\l&          " 将每行第一个字母小写

多窗口操作

:sp filename        " 上下分割窗口
:vs[p] filename     " 左右分割窗口

<c-w>h[j[k[l]]]     " 根据方向键移动光标到该方向的窗口上

<c-w>[N]>           " N 位数字,可选,增加当前窗口 N 列宽"
<c-w>[N]<           " N 位数字,可选,减少当前窗口 N 列宽"
<c-w>[N]+           " N 位数字,可选,增加当前窗口 N 行高"
<c-w>[N]-           " N 位数字,可选,减少当前窗口 N 行高"
<c-w>=              " 将所有窗口设置等宽高

<c-w>[N]n           " N 位数字,可选,打开一个新窗口 N 行高,默认为整个窗口的一半"
<c-w>[N]s           " N 位数字,可选,将当前窗口垂直分割为上下两个窗口展示"
                    " 新窗口可以为 N 行高,默认为整个窗口的一半"
                    " 类似于 :sp current_file"
<c-w>[N]v           " N 位数字,可选,将当前窗口水平分割为左右两个窗口展示"
                    " 新窗口可以为 N 列宽,默认为整个窗口的一半"
                    " 类似于 :vs current_file"


<c-w>o              " 关闭除当前窗口外的所有窗口

<c-w>r              " 顺时针转动窗口
<c-w>R              " 逆时针转动窗口
<c-w>x              " 对调左右或上下两个对应的窗口

<c-w>q              " 退出窗口
:q                  " 退出窗口

多文件编辑

vim file1 file2     " 同时打开两个文件

:files              " 查看现在编辑的文件列表,%a 代表正在操作哪个文件
  1 %a   "file1"                        line 1
  2      "file2"                        line 0

:n                  " 跳到下一个文件,这里的 n 就是字母
:N                  " 跳到上一个文件

在这里插入图片描述
(图网,侵删)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值