您的位置:首页 > 运维架构 > Linux

Linux vim编辑器简单使用之二:vim操作快捷键、小技巧

2016-06-15 18:11 627 查看
因为vim是基于命令行的,所以操作起来不可能像我们windows图形化界面那样,因此我们就需要去掌握所有的快捷键去操作.

vim filename后默认进来为正常模式.那竹子哥,我想编写内容怎么办呢?- 这里是列表文本

1、进入编辑模式

可以看看我Linux vim编辑器简单使用系列文章之一的介绍.
i\s\o\a |I\S\O\a通过这些个键去根据需求切换.
比如i表示在当前光标前插入,I表示在当前行的前插入

2、光标移动

首先是键盘上的↑ ↓ ← →键,通过这些键我们可以上下左右的移动光标.
(编辑模式、命令模式下都可以使用)

k j h l 分别是上下左右移动
(非编辑模式下使用)

Home End分别移动行头、行尾()
(编辑模式、非编辑模式下都可以使用)

w键:将光标向前移动一个字(一个单词)
b键:将光标移到当前字符的开始处
e键:将光标移到当前字符的末尾处
H键:将光标移到屏幕的第一行
M键:将光标移到现在屏幕显示的各行的中间一行
L/G键:将光标移到屏幕的最后一行
ngg键:将光标移动到第n行(n表示行数)
): 光标移至句尾
(: 光标移至句首
}: 光标移至段落开头(*****)
{: 光标移至段落结尾(*****)
nG: 光标移至第n行首(*****)
0: 光标移至当前行首
$: 光标移至当前行尾(*****)

n+: 光标下移n行(*****)
n-: 光标上移n行(*****)
(非编辑模式下使用)

3、删除文字

对文本进行修改时可能需要删除文本,删除命令必须在命令模式中进行.在vi中可以删除一个字符、一个字(单词)、许多连续的字、一行等.
下面常用的删除命令:
x键:删除光标处的字符.
dd键:(按两次d键)删除整行
dw键:删除从当前字的光标处到一个字的开始处之间的内容
ds键:删除从光标处到行尾之间的内容(测试并不好用)
D键(shift+d):删除从光标处到行尾之间的内容
ndw或ndW: 删除光标处开始及其后的n-1个字
d0: 删至行首
d$: 删至行尾
ndd: 删除当前行及其后n-1行(*****)

x        删除光标下的字符 ("dl" 的缩写)
X        删除光标前的字符 ("dh" 的缩写)
D        从当前位置删除到行尾 ("d$" 的缩写)
dw       从当前位置删除到下一个单词开头
db       从当前位置删除到前一个单词的开头
diw      删除光标上的单词 (不包括空白字符)
daw      删除光标上的单词 (包括空白字符)
dG       删除到文件末
dgg      删除到文件首
"dl"     删除字符 (缩写: "x")            |dl|
"diw"    删除内含单词                *diw*
"daw"    删除一个单词                *daw*
"diW"    删除内含字串 (见 |WORD|)        *diW*
"daW"    删除一个字串 (见 |WORD|)        *daW*
"dis"    删除内含句子                *dis*
"das"    删除一个句子                *das*
"dib"    删除内含 '(' ')' 块            *dib*
"dab"    删除一个 '(' ')' 块            *dab*
"dip"    删除内含段落                *dip*
"dap"    删除一个段落                *dap*
"diB"    删除内含 '{ ' ' }' 大块            *diB*
"daB"    删除一个 '{ ' ' }' 大块            *daB

4、复制、剪切、粘贴文字(非编辑模式下使用)

当需要删除或剪切字符、字、行的一部分时,这些内容将被保存在一个通用缓冲区,通过复制和粘贴        命令可将缓冲区中的内容粘贴到正在编辑的文本的任何地方.

yw键:将光标开始处到下一个字的开始处之间的内容复制到缓冲区.

y$键:将光标处到行尾的内容复制到缓冲区

Y组合键:与y$命令相同

yy键:复制光标所在行
nyy键:复制n行

p键:将缓冲区中的内容粘贴到光标位置下面

P键:将缓冲区中的内容粘贴到光标位置上面
按Esc键进入命令模式.

5、搜索文字(非编辑模式下使用)

/string:在文件中向后查找字符串string

?string:在文件中向前查找字符串string

n键:以当前的方向两次查找同一个关键字

N快捷键:以相反的方向再次查找同一个关键字

6、执行Shell命令

在vi编辑器中可以执行Sheel命令,执行方式是在命令模式下输入":!",然后输入Sheel的命令.
在编辑文件时,若想列出当前工作目录中的文件名,可输入ls

Key:执行完Shell命令后,下方显示一个提示信息,按Enter键即可返回vi编辑器.

7、替换

r: 替换当前字符
R: 替换当前字符及其后的字符,直至按ESC键

:s/hello/Hello/g  替换当前行的所有hello为Hello,没有最后的/g参数只替换第一个
:%s/hello/Hello/g  替换全文的所有hello为Hello,没有最后的/g参数只替换每一行第一个

8、撤消

u键

9、多行快捷操作(多选复制、多行删除、多行移动)

说起多行复制可能你会想到nyy+p但是这里介绍更强大的命令.
多行复制:
:n1,n2 co n3 将n1行到n2行的内容copy(复制)到n3行下面

多行移动
:n1,n2 m n3  将n1行到n2行的内容move(移动)到n3行下面

多行删除
:n1,n2 d    将n1行到n2行的内容删除

这里说一下全文删除:
:%d

其实vim有很多的技巧,这里就不做太多的解释.基本上写了比较常用的.

###10、多行注释
Linux中:(Ctrl + v,选中开头行,然后按住shirt + i,插入#,然后esc,然后就添加成功。)
参考百度知道
http://jingyan.baidu.com/article/9c69d48f43ed6d13c8024e7b.html

在Mac中我本来也想这样使用,结果发现,ctrl + v后,会执行粘贴,也是醉了,这里找到了一个替代的方案。
把vi切换到命令模式下,
输入:.,+3 s/^/#/g  代表当前光标行以及以后的3行都注释掉,结果发现行首都加上了# 成功~

如果想删除的话执行如下命令:
:%s/#//g  也就是全局替换。

个人信息

最近开始维护微信公众号,会不定期的写一些文章以求大家共勉,希望多多支持.
刚开始维护,没啥东西,我会近期维护文章进去.先谢谢大家了.

微信公众号名字:竹子91
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  vim