工作中接触最多的编辑器当属vim,然而也因为vim的功能太过强大导致其指令多且杂,很难完全掌握,
本文是基于本人的实际情况并通过浏览一系列介绍vim的文章进行的归纳总结,且长传前均经过一一实验,
适合于菜鸟
,为了简略,文中诸多用语可能很不准确,且部分描述不够明了,如有疑问请点击本文文末的参考原文(无链接请直接复制搜索),此仅是本人阅读笔记初稿,见笑!
内容概要
第一章节 常用编辑方法总结
1
正常模式下
2
命令模式下
3
可视模式下(正常模式下按
v
)
4
中文乱码问题
5
两种实用功能推荐(高级):
==>
1
多档案编辑
==>2
打开多窗口模式
第二章节
vim
三种模式相互关系
图
第三章节
vim
常用功能示意图
第四章节
vim
指令图
第一章节 常用编辑方法总结
1
正常模式下
(==
》记住几个大写字母意义
X(
往前删
),P
(往上粘)
,O
(往下插新行)
,G
(到最后一行)
,U
(撤销当前行的操作)
,N
(反向搜索)
,A(
行末插
)
,
0
(数字,到行首,不是到行首的插入模式)
x :
向后删除一个字符
X
:
向前删除一个字符(这个我最喜欢用了,但是原来公司的那个不知道这样搞
—
惊喜!)
nx
:
连续向后删除
n
个字符
(
大写也一样
)
dw ;
删除一个单词,从光标位置起的单词(包括空格)
J
:
将光标所在数据与下一行合成一列(常用)
/****************
删除
+
复制
begin*****************************/
de 删除一个单词,从光标位置起的单词(不包括空格)
d$
(=D)
;
删除从光标位置起至行尾
d0
:
删除从光标位置至行首
d1G :删除光标所在到第一行的所有数据
dG :删除光标所在到最后一行的所有数据(注意
y
同
d
的使用方法一致,实现复制功能)
/****************
删除
+
复制
end*****************************/
/****************定位插入取代begin*****************************/
0
或功能键
[Home]
:
到行首
(阿拉伯数字0,只是定位)
$
或功能键
[End]
:
到行末
—-
公司的那个超烂
(
只是定位
)
i
:
为『从目前光标所在处插入』,
I
:
为『在目前所在行的第一个非空格符处开始插入』。
(
常用
)
a
:
为『从目前光标所在的下一个字符处开始插入』,
A
:
为『从光标所在行的最后一个字符处开始插入』。
(
常用
)
o
:
为『在目前光标所在的下一行处插入新的一行』;(字母o)
O
:
为在目前光标所在处的上一行插入新的一行!
(
常用
)
r
:
只会取代光标所在的那一个字符一次;
R
:
会一直取代光标所在的文字,直到按下
ESC
为止;
(
常用
)
/****************定位插入取代end*****************************/
ctrl + R :
撤销掉撤销命令(先按
ctrl
键)
U
:
撤销在一行中所做的改动
r+
字母
:输入
r
和一个字符替换光标所在位置的字符。
r
**
cw+
字符串
:要改变一个单字
/
单词的部分或者全部,请输入
cw **
c$ :
可以替换当前光标到行末的内容。请输入
c$ **
/
字符串
:
正向搜索
,
如果你突然想反向,
请按
Shift-N
组合键
?字符串 :
逆向搜索
%
(先让光标停在某个括号前再按):按
%
可以查找配对的括号
)
、
]
、
}———–
调试很有用
(
测试不起作用
,
起作用了,要按住
Shift
键
)
Ctrl-g :
用于显示当前光标所在位置和文件状态信息(如我想知道我当前打开的文件的名称和总行数,)
Shift-G :
用于将光标跳转至文件最后一行。
n<Enter> :
n
为数字。光标向下移动
n
行
(
常用
)
,当然很多时候我们用
:n
来到指定的行
2
命令模式下
:#,#s/old/new/g
:在
‘
两行之间
’
替换所有的字符串
old
为新的字符串
new
,
#
代表行号
—
定位修改很有用
:s/old/new/g :
替换当前行中所有
:s/old/new :
替换当前行中第一个匹配的
:%s/old/new/g :
替换所有文本(在以上的替换命令后面加一个字符
c
可以在替换之前提醒确认)
:!
命令名
:
输入
:!
然后紧随著输入一个外部命令可以执行该外部命令,再按回车(如:
!ls
或者
!dir
,也可用
:!rm
文件名删除一个文件)
—-
这个实在太炫了
/**************
文件之间内容的复制
begin*******************************/
:w filename
:
将
编辑
的数据储存成另一个档案(类似另存新档)
:#,# w FILENAME
:
要保存文件的部分内容到
FILENAME——–
这个很炫,不过还没实际操作过!
:r
filename
:
在
编辑
的数据中,读入另一个档案的数据。亦即将 『
filename
』 这个档案内容加到游标所在行后面
:#,# r FILENAME
:
把
FILENAME
文件里的指定行内容插入到当前文件中
—————-
一定要学会
important—-
/**************
文件之间内容的复制
end*******************************/
:set ic :
忽略大小写(一般在查找前根据需要你可以先用这个命令设置
ignore Case
)
:set all :
查看当前环境参数设置值
/*************/*************//*************//*************//*************//*************//
:set backspace=2
:
使
backspace
键能够在
INSERT
模式下删除任意字符
(:set backspace=
~(~
代表空格
)
,
只能让
backspace
键在
INSERT
模式下删除刚刚增加的字符
,
公司原来就做了这个限制超不爽
)
/*************/*************//*************//*************//*************//*************//
3
可视模式下(正常模式下按
v
)
移动键盘(就是hjkl
或者四个箭头
)选择目标,接着按
y
:
复制 再在正常模式下按
p :
粘贴
,完全不用鼠标实现
vim
的粘贴复制(找了
好长时间的功能,以前没怎么关注vim
的使用
)
4
中文乱码问题
(图一:中文编码原因分析)
(图二:中文编码问题)
(图三:语系编码转换
vi.big5–>vi.utf8
)
(图四:语系编码转换
vi.big5–>
utf8
)
5
两种实用功能推荐(高级):
==>
1
多档案编辑
shell
终端输入命令
==>vim file1 file2 file3 (
打开多档案编辑
)
正常模式下
==
》
:files
(列出目前这个
vim
开启的所有档案)
正常模式下
==>:n(
编辑下一个文档
)
正常模式下
==>:N(
编辑上一个文档
)
优点:
这样之后就可以在
‘
这些档案之间
’
进行上面提到的复制粘贴了
==>2
打开多窗口模式
在正常模式下,譬如我们已经打开了某个文本
a.txt==>:sp filename
(则
a.txt
将和
filename
共同显示在屏幕上,一人一半,即分割,默认打开的文件从首行开始显示)
====>
小提醒:最初打开的文件光标在哪行,重新分割窗口后依旧在该行,只是宽度被压缩了
优点:实现多文档对照管理
第二章节 vim
三种模式相互关系
第三章节 vim
常用功能示意图
第四章节 vim
指令图
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2.vim实用教程初级
http://wenku.baidu.com/view/550376375a8102d276a22f6c.html
4.vim中文手册
http://wenku.baidu.com/view/a3df014633687e21af45a997.html