-
因为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