admin 管理员组文章数量: 887021
vim可以说是学习linux的必备技能,文件的拷贝实在是太麻烦了,不如直接对原文件进行修改。
所以我这里就总结了一些基础操作,看完你肯定能够学会vim对文件进行基础的操作。
什么是 vim?
Vim是从 vi 发展出来的一个文本编辑器。虽然说是文本编辑器,但是连 vim 的官方网站 (http://www.vim) 自己也说 vim 是一个程序开发工具而不是文字处理软件。
下面是一张键位图
建议
是不是看着眼花缭乱?那就对了,因为这是完整的键位,应该很少有人能够全部都用上,就像在windows下,用的最多的还是Ctrl+C/V操作(手动滑稽)。
所以一开始实在没有必要系统的进行学习,而是先学基础操作,后面在使用中可以不断的熟悉,然后为了提高效率,你就会慢慢的掌握一些快捷键的使用。
三种模式
vim 共分为三种模式,分别是
- 命令模式(Command mode):默认模式,移动光标,剪切/粘贴文本(界面表现:左下角显示文件名或为空)
- 输入模式(Insert mode):修改文本(界面表现:左下角显示—INSERT–)插入模式下,按ESC按键返回命令模式
- 底线命令模式(Last line mode):保存、退出等(界面表现:左下角显示—VISUAL–)末行模式下连续按两次ESC按键返回末行模式
三者之间的关系
图片来自runoob
命令模式
用户刚刚启动 vim,便进入了命令模式。
比如输入vim test.txt
,就会变成这样:
test.txt如果不存在当前的目录,就会新建的一个test.txt文件.
此状态下敲击键盘动作会被vim识别为命令,而非输入字符。就像在windows下按住了ctrl一样,你的操作会被解析执行.
按下i,并不会输入一个字符,i被当作了一个命令,会进入输入模式
以下是常用的几个命令:
i 切换到输入模式,以输入字符。
: 切换到底线命令模式,然后可以在最底行输入命令。
输入/编辑 模式
在命令模式下按下 i 就进入了输入模式。
不是只有i才可以进入输入模式。后面会有其他命令进行文本编辑。
输入模式可以对文本进行内容进行修改。
在输入模式中,可以使用以下按键:
- 字符按键以及Shift组合,输入字符
- ENTER,回车键,换行
- BACK SPACE,退格键,删除光标前一个字符
- DEL,删除键,删除光标后一个字符 方向键,在文本中移动
- HOME/END,移动光标到行首/行尾
- Page Up/Page Down,上/下翻页
- Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
- ESC,退出输入模式,切换到命令模式
底线命令模式
在命令模式下按下:(英文冒号)就进入了底线命令模式。
按下后左下角就会显示一个 :
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
底线命令模式下输入q!
就会强制退出vim编辑器,不保存任何内容。
按ESC键可随时退出底线命令模式,回到命令模式。如果有输入内容没有执行两次esc也可退出。
这边就只介绍那么多,只是一些入门概念和操作。
下面就仔细讲解一下具体的操作。
下面是具体的文件操作
行号设置
命令模式下操作,只对当前文件有效。
命令 | 解释 |
---|---|
:set nu | 显示行号 |
:set nonu | 取消显示行号 |
如果需要全局设置vim /etc/vimrc
,在最后一行处增加set number
,保存就可以了。
文件操作
下面是文件的操作,都是底线模式的命令。(带 : 是为了说明这是底线模式命令)
命令 | 解释 |
---|---|
vim filename | 打开filename文件,如果不存在就创建 |
:w | 保存文件 |
:w! | 强制保存 |
:w filename | 另外保存至filename文件 |
:q | 退出vim编辑器,且保存文件;如果文件已修改请使用下面的保存命令 |
:q! | 强制退出vim编辑器,且 不保存 |
:wq | 保存文件, 退出 vim编辑器 |
:wq! | 保存文件,强制退出 vim编辑器 |
:e! | 放弃所有修改,回到上次保存的状态或者打开时的状态,重新编辑 |
:e otherfilename | 切换编辑文件名为otherfilename的文件。 |
:set fileformat = unix | 将文件格式修改为unix格式,如win下面的文本文件在linux下会出现^M。 |
:set fileencoding = utf-8 | 转换文件编码,比如将一个文件转换成utf-8格式 |
所谓fileformat就讲的是个行结束符的问题。行结束符在显示的时候是不显示的。由于历史原因,dos,unix,mac采用了不同的行结束符。
光标移动
移动光标在命令模式和输入模式下都可以进行,但是输入模式下比较局限,因为大部分的按键都会被解析成字符进行输入,而命令模式则会解析成命令。
输入模式的光标移动
两个模式都可以使用方向键以及小键盘的方向键(需要解开num lock)进行光标移动。
输入模式下应该也只能方向键移动了。(别的我母鸡啊,如果有别的麻烦提醒我下一吧…)
命令模式的光标移动
命令 | 解释 |
---|---|
上下左右方向键 | 移动光标 |
h j k l | 与方向键一样的移动方式,h 向左、j 向下 、k 向上、l 向右。 |
Space空格键 | 向右移动 |
Backspace 退格键 | 向左移动 |
Enter | 移动到下一行首 |
- | 移动到上一行首 |
n ↓或n ↑ | 依次敲击 数字键 和 ↓ 键 来实现移动n位,这里的n是数字。比如n↓,就是向下移动n行。n↑是向上移动n行 |
n →或n ← | n→就是向右移动n位,n ←就是向左移动n位 |
n+ | 向下跳n行 |
n- | 向上跳n行 |
G | 跳至文件的底部(注意是大写的G,不是g) |
nG | 跳到行号为n的行 |
pageup | 上一页 |
pagedown | 下一页 |
复制和粘贴
命令 | 解释 |
---|---|
yy | 将当前行复制到缓存区,也可以用"ayy 复制,"a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务。 |
nyy | 将当前行向下n行复制到缓冲区,也可以用"anyy 复制,"a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务。 |
yw | 复制从光标开始到词尾的字符。 |
nyw | 复制从光标开始的n个字符。 |
y^ | 复制从光标到行首的内容。 |
y$ | 复制从光标到行尾的内容。 |
p | 粘贴剪切板里的内容在光标后,如果使用了前面的自定义缓冲区,建议使用"ap 进行粘贴。 |
P | 粘贴剪切板里的内容在光标前,如果使用了前面的自定义缓冲区,建议使用"aP 进行粘贴。 |
插入、撤销、删除
命令 | 解释 |
---|---|
a | 在当前光标位置的右边添加文本 |
i | 在当前光标位置的左边添加文本 |
A | 在当前行的末尾位置添加文本 |
I | 在当前行的开始处添加文本(非空字符的行首) |
O | 在当前行的上面新建一行 |
o | 在当前行的下面新建一行 |
R | 替换(覆盖) 当前光标位置及后的若干文本 |
J | 合并光标所在行及下一行为一行(依然在命令模式) |
x | 删除当前字符 |
nx | 删除从光标开始的n个字符 |
dd | 删除当前行 |
ndd | 向下删除当前行在内的n行 |
u | 撤销上一步操作 |
U | 撤销对当前行的所有操作 |
替换
命令 | 解释 |
---|---|
: s/old/new | 用new替换行中首次出现的old |
: s /old/new/g | 用new替换行中所有的old |
: n,m s/old/new/g | 用new替换从n到m行里所有的old |
: %s/old/new/g | 用new替换当前文件里所有的old |
搜索
搜索之后的结果会高亮显示,如果想要取消高亮需要取消高亮命令。
命令 | 解释 |
---|---|
:/string | 向光标下搜索string字符串 |
:?string | 向光标上搜索string字符串 |
:n | 下一个搜索结果 |
:N | 上一个搜素结果 |
:noh(底线命令) | 取消高亮 |
小结
看到这里,再回头去看前面这张键位表,我感觉已经能够完全看懂这些命令了。
其他还有很多很多的命令,我也没有完全的了解,所以这篇文章就先介绍到这里了,感谢大家的观看。
版权声明:本文标题:Linux中vim编辑器基本操作就这么简单 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1724509618h753087.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论