您的位置:首页 > 其它

一般模式下移动光标及复制剪切粘贴

2018-01-29 15:03 288 查看
1、移动光标

移动光标的时候,可以通过上下左右的方向键来操作,但是这样有点慢,下图说明了一些 vim 下比较常用的快捷键使用方法,



空格键也是向右移动的快捷键,还可以通过数字来控制它的位置。例如先按下数字5,再按空格键的话,光标就会直接向右移动5个字符。h、j、k、l 这些快捷键也都支持使用数字来控制光标移动的数量。

2、vim 一般模式下移动光标的快捷方式

字符移动
h,j,k,l 左下上右
行内移动
w 正向移动到相邻单词的首字符
b 逆向移动到相邻单词的首字符
B 向前一个单词,以空格和TAB为分隔符
e 正向移动到相邻单词的尾字符
ge 逆向移动到相邻单词的尾字符
0 数字0,左移光标到本行的开始;
Shift + 6 ,左移光标到本行的开始;
Shift + 4 ,右移光标到本行的末尾;
$ 右移光标,到本行的末尾;
^ 移动光标,到本行的第一个非空字符
页移动
H 跳转到当前屏幕的第一行
M 跳转到本屏显示的中间一行
L 跳转到最后一行
2H 表示将光标移到屏幕的第2行
3L 表示将光标移到屏幕的倒数第3行
z + enter 是当前行成为屏幕的第一行
z + - 是当前一行成为最后一行
ctrl + f 在文件中前移一页(或 page down);
ctrl + b 在文件中后移一页(或 page up);
ctrl + d 往下滚动半屏
ctrl + u 往上滚动半屏
文件移动
gg 跳到首行
G 即 Shift +g ,跳到尾行
nG 跳转到n行,n 是任意数字,其中右下角也可以看到光标的位置,见下图,



% 跳到另一边括号
配合查找字符的方式移动
fa 正向移动到第一个字符 a 处
Fa 逆向移动到第一个字符 a 处
非相邻的单词或字符间移动
8w 正向移动到相隔八个单词的首字符
4Fa 逆向移动到第四个 a 字符
更大范围的移动
当光标停留在一个单词上,* 键会在文件内搜索该单词,并跳转到下一处;
“ # ”当光标停留在一个单词上,“ # ”在文件内搜索该单词,并跳转到上一处;
(/) 移动到 前/后 句 的开始;
{/} 跳转到 当前/下一个 段落 的开始。
g 到本行最后一个不是 blank 字符的位置。
fa 到下一个为 a 的字符处,你也可以fs到下一个为s的字符。
t, 到逗号前的第一个字符。逗号可以变成其它字符。
3fa 在当前行查找第三个出现的 a。
F/T 和 f 和 t 一样,只不过是相反方向;
gg 将光标定位到文件第一行起始位置;
G 将光标定位到文件最后一行起始位置;
NG或Ngg 将光标定位到第 N 行的起始位置

3、复制剪切粘贴



替换和删除
Vim常规的删除命令是 d、 x (前者删除 行 ,后者删除 字符 ),结合Vim的其他特性可以实现基础的删除功能。将光标定位于文件内指定位置后,可以用其他字符来替换光标所指向的字符,或从当前光标位置删除一个或多个字符或一行、多行
gg dG 删除全部内容
d0 删除至行首
dl 删除当前字符, dl=x
dh 删除前一个字符
dd 删除当前行
dj 删除上一行
dk 删除下一行
dw 删除到下一个单词开头
de 删除到本单词末尾
dE 删除到本单词末尾包括标点在内
db 删除到前一个单词
dB 删除到前一个单词包括标点在内
10d 删除当前行开始的10行
d$ 删除当前字符之后的所有字符(本行)
D 删除当前字符至行尾。D=d$
kd gg 删除当前行之前所有行(不包括当前行)
jdG 删除当前行之后所有行(不包括当前行)
:1,10d 删除1-10行
:11,$d 删除11行及以后所有的行
:1,$d 删除所有行
J 删除两行之间的空行,实际上是合并两行
rc 用 c 替换光标所指向的当前字符;
nrc 用 c 替换光标所指向的前 n 个字符;
5rA 用 A 替换光标所指向的前 5 个字符;
x 删除光标所指向的当前字符;
nx 删除光标所指向的前 n 个字符;
3x 删除光标所指向的前 3 个字符;
dw 删除光标右侧的字;
ndw 删除光标右侧的 n 个字;
3dw 删除光标右侧的 3 个字;
db 删除光标左侧的字;
ndb 删除光标左侧的 n 个字;
5db 删除光标左侧的 5 个字;
dd 删除光标所在行,并去除空隙;一次只能剪切一行
ndd 删除(剪切) n 行内容,并去除空隙;
3dd 删除(剪切) 3 行内容,并去除空隙;
Vim常规的替换命令有 c 和 s ,结合Vim的其他特性可以实现基础的替换功能,不过替换命令执行以后,通常会由 编辑模式 进入 插入模式
s 用输入的正文替换光标所指向的字符;
S 删除当前行,并进入编辑模式;
ns 用输入的正文替换光标右侧 n 个字符;
nS 删除当前行在内的 n 行,并进入编辑模式;
cw 用输入的正文替换光标右侧的字;
cW 用输入的正文替换从光标到行尾的所有字符(同 c$ );
ncw 用输入的正文替换光标右侧的 n 个字;
cb 用输入的正文替换光标左侧的字;
ncb 用输入的正文替换光标左侧的 n 个字;
cd 用输入的正文替换光标的所在行;
ncd 用输入的正文替换光标下面的 n 行;
c$ 用输入的正文替换从光标开始到本行末尾的所有字符;
c0 用输入的正文替换从本行开头到光标的所有字符。
复制粘贴
yy 拷贝当前行
nyy 拷贝当前后开始的n行,比如2yy拷贝当前行及其下一行
“+y 复制 1 行到操作系统的粘贴板
“+nyy 复制 n 行到操作系统的粘贴板
:1,10 co 20 将1-10行插入到第20行之后
:1,co 将整个文件复制一份并添加到文件尾部
正常模式下按v(逐字)或V(逐行)进入可视模式,然后用jklh命令移动即可选择某些行或字符,再按y即可复制
ddp 交换当前行和其下一行
xp 交换当前字符和其后一个字符
正常模式下按v(逐字)或V(逐行)进入可视模式,然后用jklh命令移动即可选择某些行或字符,再按d即可剪切
ndd 剪切当前行之后的n行。利用p命令可以对剪切的内容进行粘贴
:1,10d 将1-10行剪切。利用p命令可将剪切后的内容进行粘贴。
:1, 10 m 20 将第1-10行移动到第20行之后。
x 剪切当前字符,即向后删除一个字符
3x 剪切当前光标开始向后三个字符,
X 剪切当前字符的前一个字符,即向前删除一个字符。X=dh
p (小写p)粘贴到下一行或右侧,修改和删除的数据自动到粘贴板中
P (大写P)粘贴到上一行或左侧
不规则剪切粘贴,可以先按 v 进入 visual mode 可视界面,通过上下左右方向键选中要替换的单词,再按小写 x 剪切,按小写 p 粘贴即可。



yiw (yank inner word)在一个单词的任意字母使用,就复制该单词
yw 则只是复制从光标所在字母到词尾的部分
撤销和重复
u 撤销最近一次修改 undo;一次恢复一个操作,最多恢复50次。恢复到最原始的操作之后,左下角会出现文字“已位于最旧的改变”。
. 重复最后一条修改正文的命令
U 撤销所有修改
Ctrl + r 取消最后一次的撤销 redo
块编辑
v 可进入visual模式,使用标准快捷键移动光标可选择文本块,之后可输入标准编辑命令
ctrl + v 列编辑
行尾块…

插入模式
进入
i 在当前位置生前插入
I 在当前行首插入
a 在当前位置后插入
A 在当前行尾插入
o 在当前行之后插入一行
O 在当前行之前插入一行
s 删掉当前字符,并进行输入
x 删掉当前字符,停留在Normal模式
退出
Esc
ctrl + O 暂时性的
ctrl + C 取消当前的任何操作
ctrl + [ 官方推荐替换Esc
移动光标 尽量不要进入插入模式移动光标
ctrl + H 光标移当前行行首 imap
ctrl + J 光标移下一行行首 imap
ctrl + K 光标移上一行行尾 imap
ctrl + L 光标移当前行行尾 imap
Alt + H 光标左移一格 imap
Alt + J 光标下移一格 imap
Alt + K 光标上移一格 imap
Alt + L 光标右移一格 imap
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  vim 一般 模式
相关文章推荐