目录
1.vim的额外功能
1.1 可视区块(Visual Block)
大部分操作都是以行为操作单位
这里运用以列操作单位(即一个区块)
当按下 v 或 V 或【Ctrl】+v 时,显示可视区块,光标移动过的地方就会反白
按键 | 可视区块的按键意义 |
---|---|
v | 字符选择 |
V | 行选择 |
[Ctrl]+v | 显示可视区块,可用矩形的方式选择数据 |
y | 将反白的地方进行复制操作 |
d | 将反白的地方进行删除操作 |
p | 将复制的区块,在光标所在处粘贴 |
接下来进行复制粘贴(按列操作):
操作前:
操作后:
将光标移动至host1的第一个字母h,按【Ctrl】+v 显示可视区块
可按方向键进行选择数据
选择host这一列,按下【y】进行复制
按【i】进入编辑模式,在第一行末尾【空格键】空2格
按【ESC】退出编辑模式,进入一般命令模式
按下【p】将刚刚复制的数据进行粘贴
1.2 多文件编辑
在过去,将文件A的10条数据移动到文件B,通常需要打开两个vim窗口,而每个vim又都是独立的,无法在文件A执行【nyy】(复制) 再到B中【p】(粘贴)
在这种情况下最常用的办法是通过鼠标选定,复制后粘贴
vim同时打开多个文件时的相关按键:
按下【Shift】+【:】后输入下面的字符
多文件编辑的按键 | 功能 |
---|---|
:n | 编辑下一个文件 |
:N | 编辑上一个文件 |
:files | 列出目前vim中开启的所有文件 |
举例:
将【host.txt】内前4行IP数据复制到【/tmp/hosts.txt】中
1.通过【vim host.txt /tmp/hosts.txt】命令来使用一个vim打开两个文件
[dmtsai@study ~] vim host.txt /tmp/hosts.txt
2.在vim中按下【Shift】+【:】输入【files】然后回车,查看目前vim中待编辑的文件
再次回车后回到一般命令模式
3.按【1G】光标回到第一行,在第一行直接输入【4yy】(yanked)复制四行
4.在vim中按下【Shift】+【:】输入【n】跳转到第二个编辑文件【/tmp/hosts.txt】
5.在文件【/tmp/hosts.txt】中按【G】到最后一行,再输入【p】(粘贴)
1.3 多窗口功能
若查看后面数据时,想对照前面的数据,就可用多窗口功能
若查看一个文件的数据时,想对照另一个文件的数据,就可用多窗口功能
多窗口情况下的按键 | 功能 |
---|---|
[Ctrl]+w+j / ↓ | 光标可移动到下方窗口 ( 先按[Ctrl]不放,再按w后放开所有键,之后再按 j 或 ↓ ) |
[Ctrl]+w+k / ↑ | 光标移动到上方窗口 ( 先按[Ctrl]不放,再按w后放开所有键,之后再按 k 或 ↑ ) |
[Ctrl]+w+q | 退出光标当前所在窗口 |
在命令行模式 ( 按下【Shift】+【:】) 输入【sp{filename}】
-
仅输入sp:出现的是同一个文件在两个窗口间
-
sp{filename}:两个不同的文件在同一个vim中的不同窗口,即在新窗口启动另一个文件,就输入文件名
在上一张图的情景下输入【G】去到文件的末尾一行,然后按下【Shift】+【:】输入sp{/tmp/hosts.txt}
1.4 vim的关键词补全功能
vim补齐功能
组合键 | 补齐的内容 |
---|---|
[Ctrl]+x -> [Ctrl]+n | 通过目前正在编辑的这个【文件的内容文字】作为关键字,予以补齐 |
[Ctrl]+x -> [Ctrl]+f | 以当前目录内的【文件名】作为关键词,予以补齐 |
[Ctrl]+x -> [Ctrl]+o | 以扩展名作为语法补充,以vim内置的关键词,予以补齐 |
1.5 vim环境设置与记录:~/.vimrc、 ~/.viminfo
整体vim的设置值一般是放置在【/etc/vimrc】这个文件中。
[dmtsai@study ~] vim ~/.vimrc
vim会主动将你曾做过的操作记录下来,这个记录操作的文件就是【~/.viminfo】
命令行模式下输入的内容 | 功能 |
---|---|
:set nu :set nonu |
设置与取消行号 |
:set hlsearch :set nohelsearch |
设置是否将查找的字符串反白 (high light search)高亮度查找 |
:set backup | 是否自动保存备份文件 |
:set ruler | 是否显示状态栏右下角的说明 |
:set showmode | 是否显示状态栏左下角的说明 |
:set backspace= | 利用退格键删除任意字符 |
:set all | 显示目前所有的环境参数设置值 |
:set | 显示与系统默认值不同的参数 |
:syntax on :syntax off |
是否依据程序相关语法显示不同颜色 |
:set bg=dark :set bg=light |
用以显示不同的颜色色调 |