认识vim
vim是一款著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。vim是一款开源免费的软件。
vim的使用
基本上vim可以分为3种模式:一般模式、编辑模式、命令行模式。
- 一般模式:用vim打开一个文件就会默认进入一般模式。该模式下可以使用上下左右键移动光标,也可以删除字符或删除整行,也可以复制、粘贴内容。
- 编辑模式:在一般模式下,按“i\I\o\O\a\A\r\R”等任何一个字母之后都可以进入编辑模式,通常进入编辑模式之后,在界面左下方会出现INSERT字样,若想返回一般模式,按下[ESC]即可。
- 命令行模式:在一般模式下,输入“ : / ?”3个中任何一个都可以将光标移动到最下面的一行,即进入命令行模式,只不过不同字符对应的可使用的命令不同,如果想从命令行模式返回一般模式,按下[ESC]即可。
按键说明
移动光标的方法:
操作 | 结果 |
---|---|
h 或 [ ← ] | 光标向左移动一个字符 |
j 或 [ ↓ ] | 光标向下移动一个字符 |
k 或 [ ↑ ] | 光标向上移动一个字符 |
l 或 [ → ] | 光标向右移动一个字符 |
N(h/j/k/l)或N([←][↑][→][↓]) | N代表数字,即向对应的方向N个字符 |
[Ctrl]+[f] | 屏幕向下移动一页,相当于[Page Down]按键 |
[Ctrl]+[b] | 屏幕向上移动一页,相当于[Page Up]按键 |
[Ctrl]+[d] | 屏幕向下移动半页 |
[Ctrl]+[u] | 屏幕向上移动半页 |
+ | 光标移动到非空格符的下一行 |
- | 光标移动到非空格符的上一行 |
0 或 [home] | 移动到这一行的最前面字符处 |
$ 或 [end] | 移动到该行的最后一个字符处 |
H | 光标移动到屏幕最上方那一行的第一个字符 |
M | 光标移动到屏幕中央那一行的第一个字符 |
L | 光标移动到屏幕最下方那一行的第一个字符 |
G | 移动到该文件的最后一行 |
nG | n为数字,移动到该文件的第n行 |
gg | 移动到该文件的第一行,相当于1G |
N[Enter] | N代表数字,光标向下移动N行 |
/word | 向下寻找一个名称为word的字符串 |
?word | 向上寻找一个名称为word的字符串 |
n | 重复前一个查找动作 |
N | 反向进行前一个查找动作 |
:n1,n2s/word1/word2/g | n1 n2为数字,代表行号,指在n1到n2行之间查找名称为word1的字符串,并将该字符串替换为word2 |
:1,$s/word1/word2/g | 从第一行到最后一行查找名称为word1的字符串,并将该字符串替换为word2 |
1,$s/word1/word2/gc | 从第一行到最后一行查找名称为word1的字符串,并将该字符串替换为word2。在替换之前显示提示字符给用户确认是否需要替换。 |
x,X | x为后前删除一个字符,X为向前删除一个字符 |
nx | n为数字,连续向后删除n个字符 |
dd | 删除光标所在的整行 |
ndd | n位数字,删除光标所在的向下n行 |
d1G | 删除光标所在到第一行的所有内容 |
dG | 删除光标所在到最后一行的所有内容 |
d$ | 删除从光标所在处到该行的最后一个字符 |
d0 | 删除从光标所在处到该行的最前面一个字符 |
yy | 复制光标所在的整行 |
nyy | n为数字,复制光标所在的向下n行 |
y1G | 复制光标所在行到第一行的所有数据 |
yG | 复制光标所在行到最后一行的所有数据 |
y0 | 复制光标所在的字符到该行行首的所有内容 |
y$ | 复制光标所在的字符到该行行尾的所有内容 |
p,P | p为将已经复制的内容在光标所在行的下一行粘贴,P为将已经复制的内容在光标的所在行的上一行粘贴 |
J | 将光标所在行与下一行的内容合成同一行 |
c | 重复删除多个数据 |
u | 撤销前一动作 |
[Ctrl]+r | 重复上一个操作 |
. | 重复前一个操作 |
编辑模式按钮说明:
操作 | 结果 |
---|---|
i,I | 进入插入模式:i为从目前光标所在处插入,I为在目前所在行第一个非空格字符处开始插入 |
a,A | 进入插入模式:a为从目前光标所在处的下一个字符开始插入,A为从光标所在行的最后一个字符处开始插入 |
o,O | 进入插入模式:o为在目前光标所在处的下一行插入新的一行,O为在目前光标所在处的上一行插入新的一行 |
r,R | 进入替换模式:r只会替换光标所在处的那一个字符一次,R会持续替换光标所在处的字符,直到按下[ESC]为止 |
命令行操作:
操作 | 结果 |
---|---|
:w | 保存,将所编辑的内容写入到硬盘文件中 |
:w! | 强制保存,若文件属性为“只读”时,强制写入该文件 |
:q | 退出 |
:q! | 强制退出,若修改过文件内容,又不想储存,使用“q!”为强制退出不保存文件 |
:wq | 保存后退出 |
:wq! | 强制保存并退出 |
ZZ | 若文件没有改动,则不保存退出,若文件改动,则保存退出 |
:w[filename] | 将编辑的内容保存为另一个名为[filename]的文件 |
:r[filename] | 将名为[filename]的文件内容添加到光标所在行的后面 |
:n1,n2 w [filename] | 将n1到n2的内容保存成filename这个文件 |
:!command | 暂时离开vim到命令行模式下执行command的显示结果 |
:set nu | 显示行号 |
:set nonu | 不显示行号 |
:n | 编辑下一个文件 |
:N | 编辑上一个文件 |
:files | 列出当前vim打开的所有文件 |
:sp [filename] | 打开一个新窗口,如果加上[filename],则新窗口显示[filename]的内容,否则两个窗口显示同一个文件内容(同步显示) |
[Ctrl]+w+j / [Ctrl]+w+[ ↓ ] | 将光标移动到下方的窗口 |
[Ctrl]+w+k / [Ctrl]+w+[ ↑ ] | 将光标移动到上方的窗口 |
当了解上面的内容后,就已经可以开始使用vim了,但是在使用的过程中发现,vim十分的不好用,这是因为vim还没有经过配置,没有经过配置的vim是十分不易使用的,所以这里建议一定要根据自己的喜好来配置vim。
配置vim
整体vim的配置文件一般放在/etc/vimrc这个文件中,不过不建议直接修改该文件,可以修改~/.vimrc这个文件(默认不存在,需自行手动创建),将所需要的设置值写入。
其他强大的文本编辑器
Notepad++
- 平台:windows/mac
- 授权:免费
- 说明:Notepad++是一款开源、小巧、免费的纯文本编辑器。除了纯文本,其他的很多文件都可以使用记事本来打开。例如ini配置文件、inf信息。还有很多文件类型实际上就是文本编码,例如Windows 库就是改了扩展名的、含有特定文本的文本文档。
- 优点:所见即所得。
记事本
- 平台:windows
- 授权:windows系统内置
- 说明:只可以处理纯文本文件,打开速度快,记事本可以保存无格式文件,你可以把记事本编辑的文件保存为:“ .html ”, “ .java ”,“ .asp ”等等任意格式。
- 缺点:不可打开超大文件;仅可撤销一步操作;
Markdown
- 平台:windows/mac
- 授权:免费
- 说明:Markdown是一种可以使用普通文本编辑器编写的标记(html标签)语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。
nano
- 平台:Linux
- 授权:免费
- 说明:非常小巧的文本编辑器,它不像vim那样难以上手,但是功能也不如vim一样强大,仅仅可以处理简单的文本文件。
ed
- 平台:Linux
- 授权:免费
- 说明:ed是Linux中功能最简单的文本编辑程序,一次仅能编辑一行而非全屏幕方式的操作。