Vim编辑器
一、 介绍
vim的前身是vi编辑器,vi的全称是Visual Interface,我们称之为可视化接口,vim的全称是Visual Interface IMproved,意为vi增强版,是Linux上非常著名的、功能非常强大的、入门曲线非常陡峭的文本编辑器。
二、基本使用方法
1. 命令格式
vim [options] [file ..]
- option:
+#
:打开文件直接定位第#行
+
:直接到尾行的第一个非空白字符上
+/pattern
:打开文件直接让光标处于第一个被pattern匹配到的行首
2. 模式转换
vim是一个模式化编辑器,处于不同的模式中,击键的意义也是不同的
2.1 命令模式
使用vim打开文件时,默认就处于命令模式
x
:删除光标处的单个字符#x
:删除#个字符dd
:删除整个行D
:删除当前光标至行尾,留空白p
:缓冲区如果是整行,粘贴下方,缓冲区如果是半行,粘贴在光标后面P
:缓冲区如果是整行,粘贴上方,缓冲区如果是半行,粘贴在光标前面yy
:复制r
:替换光标所在处的单个字符u
:撤销操作ctrl+r
:恢复撤销操作.
:重复上一次操作ZZ
:保存退出
2.2 命令模式转为输入模式
直接在命令模式中键入
i
:insert,在光标前转输入模式a
:append,在光标后转为输入o
:在光标所在行的下方加入新行,并转换为输入模式I
:在当前光标所在行首输入A
:在当前光标行尾输入O
:在当前光标上一行输入c
:删除当前光标至指定位置,结合光标跳转使用,删除后直接进入输入模式C
:删除当前光标至行尾,删除后直接进入输入模式
2.3 命令模式转为末行模式
直接敲:
(冒号),末行模式的使用格式为地址定界/命令操作/修饰符
2.3.1 命令操作
q
:退出q!
:强制退出wq
:保存退出x
:保存退出help
:获取帮助w /PATH/TO/SOMEWHERE
:把当前文件内容保存到新的文件中r /PATH/TO/SOMEWHERE
:读取某个文件到指定处/pattern
:从当前向下执行搜索操作?pattern
:从当前向上执行搜索操作n
:下一个搜索结果,与命令同方向N
:下一个搜索结果,与命令反方向
s
:查找替换关键字,格式为s/要查找的内容/替换的内容/修饰符
,分隔符可以使用其他符号代替i
:忽略大小写g
:全局替换d
:删除y
:复制
2.3.2 地址定界
#
:具体第#行#,#
:从#到#行;#,+#
:从#到#+#行.
:当前行$
:最后一行%
:全文
2.4 命令模式转为可视化模式
可视化模式结合光标跳转命令选择内容,结合编辑命令来指定操作,取消则按Esc键
v
:按字符选定V
:按行选定
2.5 多文件模式
2.5.1 每个文件单独显示
使用vim同时打开多个文件:vim file1 file2 file3
,文件间跳转:
next
:下一个文件prev
:上一个first
:第一个last
:最后一个wall
:保存所有qall
:退出所有
2.5.2 窗口分割显示
使用vim -O/-o file1 file
打开多个文件
-o
:上下分割窗口-O
:左右分割窗口ctrl+w,↑、↓、←、→
:切换窗口ctrl+w,s
:打开后继续分割,上下分割ctrl+w,v
:打开后继续分割,左右分割
3. 光标跳转
3.1 字符跳转
- 左下上右:
h、j、k、l
#[h、j、k、l]
:一次跳转#个字符
3.2 单词跳转
w
:跳转到下一个单词的词首b
:当前或前一个单词的词首e
:当前或下一个单词的词尾#[w、b、e]
:一次跳转#个单词
3.3 行内跳转
^
:跳转至行首的第一个非空白字符0
:绝对行首$
:绝对行尾
3.4 行间跳转
G
:最后一行#G
:第#行gg
:第一行
3.5 句间跳转
(
:上一句)
:下一句
3.6 段落跳转
{
:上一段}
:下一段
3.7 翻屏操作:
ctrl+f
:向下翻一屏ctrl+b
:向上翻一屏ctrl+d
:向下翻半屏ctrl+u
:向上翻半屏
三、定制vim工作特性:
1. 配置文件:
- 全局生效:
/etc/vimrc
- 个人生效:
~/.vimrc
,默认没有,需手动创建
2.常用工作特性
- 显示、关闭行号:
set nu、set nonu
- 显示括号、关闭括号匹配:
set sm、set nosm
- 自动、关闭缩进:
set ai、set noai
- 搜索结果高亮显示、关闭高亮搜索结果:
set hlsearch、set nohlsearch
- 语法高亮、关闭语法高亮:
syntax on、syntax off
- 忽略字符大小写、关闭忽略字符大小写:
set ic、set noic
四、 练习
-
复制
/etc/grub2.cfg
到/tmp
目录,删除/tmp/grub2.cfg
文件中行首的空白字符
末行模式输入%s/^[[:space:]]\+//
-
复制
/etc/init.d/functions
文件至/tmp
,用查找替换给/tmp/function
文件中以空白开头行的行首加一个#
末行模式%s/^[[:space:]]/#&/
-
复制/etc/init.d/functions文件至/tmp目录,替换/tmp/functions/文件中的/etc/sysconfig/init为/var/log
末行模式中输入%s@/etc/sysconfig/init@/var/log@g
-
删除上述文件中所有以#号开头,且#号后面至少有一个空白字符行首的#。
末行模式中输入%s/^#\([[:space:]]\+.*\)/\1/
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Busyops!
评论