VIM编辑器
1. vim 的使用
基本上 vi 共分为三种模式,分别是“一般指令模式”、“编辑模式”与“命令行命令模式”。 这三种模 式的作用分别是:
-
一般指令模式 (command mode)
以 vi 打开一个文件就直接进入一般指令模式了(这是默认的模式,也简称为一般模式)。在 这个模式中, 你可以使用“上下左右”按键来移动光标,你可以使用“删除字符”或“删除整列”来处理文 件内容, 也可以使用“复制、贴上”来处理你的文件数据。
-
编辑模式 (insert mode)
在一般指令模式中可以进行删除、复制、贴上等等的动作,但是却无法编辑文件内容的! 要 等到你按下“i, I, o, O, a, A, r, R”等任何一个字母之后才会进入编辑模式。注意了!通常在 Linux 中,按 下这些按键时,在画面的左下方会出现“ INSERT 或 REPLACE ”的字样,此时才可以进行编辑。而如 果要回到一般指令模式时, 则必须要按下“Esc”这个按键即可退出编辑模式。
-
命令行命令模式 (command-line mode)
在一般模式当中,输入“ : / ? ”三个中的任何一个按钮,就可以将光标移动到最下面那一列。在 这个模式当中, 可以提供你“搜寻数据”的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号等 等的动作则是在此模式中达成的!
2. 区块选择(Visual Block)
区块选择的按键意义 | |
v | 字符选择,会将光标经过的地方反白选择!(移动一次选择一个字符) |
V | 列选择,会将光标经过的列反白选择! |
[Ctrl]+v | 区块选择,可以用长方形的方式选择数据 |
y | 将反白的地方复制起来 |
d | 将反白的地方删除掉 |
p | 将刚刚复制的区块,在光标所在处贴上! |
3. 多文件编辑
通过 vim test1 test2 test3 同时打开三个文件,然后通过如下命令进行切换
多文件编辑的按键 | |
:n | 编辑下一个文件 |
:N | 编辑上一个文件 |
:files | 列出目前这个 vim 的打开的所有文件 |
4. 多窗口功能
先通过vim打开一个文件,然后通过 :sp [filename]打开另一个文件,实现上下显示,然后通过下面代码实现上下窗口切换:
多窗口情况下的按键功能 | |
:sp | 打开一个新窗口,如果有加 filename, 表示在新窗口打开一个新文件,否则表示两个窗口为同[filename] 一个文件内容(同步显示)。 |
[ctrl]+w+ j [ctrl]+w+↓ | 按键的按法是:先按下 [ctrl] 不放, 再按下 w 后放开所有的按键,然后再按下 j (或向下方向 键),则光标可移动到下方的窗口。 |
[ctrl]+w+ k [ctrl]+w+↑ | 同上,不过光标移动到上面的窗口。 |
[ctrl]+w+ q | 其实就是 :q 结束离开啦!举例来说,如果我想要结束下方的窗口,那么利用 [ctrl]+w+↓ 移动到下方窗口后,按下 :q 即可离开, 也可以按下 [ctrl]+w+q 啊! |
5. vim 的补全功能
注意:一定要使用正确的扩展名,否则会无法出现任何关键字词喔!
组合按钮 | 补齐的内容 |
---|---|
[ctrl]+x -> [ctrl]+n | 通过目前正在编辑的这个“文件的内容文字”作为关键字,予以补齐 |
[ctrl]+x -> [ctrl]+f | 以当前目录内的“文件名”作为关键字,予以补齐 |
[ctrl]+x -> [ctrl]+o | 以扩展名作为语法补充,以 vim 内置的关键字,予以补齐 |
6. vim 环境设置(~/.vimrc)
自定义自己的VIM格式
vim 的环境设置参数 | |
:set nu :set nonu | 就是设置与取消行号啊! |
:set hlsearch :set nohlsearch | hlsearch 就是 high light search(高亮度搜寻)。 这个就是设置是否将搜寻的字串反白的设置值。默认值是 hlsearch |
:set autoindent :set noautoindent | 是否自动缩排?autoindent 就是自动缩排 |
:set backup | 是否自动储存备份文件?一般是 nobackup 的, 如果设置 backup 的 话,那么当你更动任何一个文件时,则原始文件会被另存成一个文 件名为 filename~ 的文件。 举例来说,我们编辑 hosts ,设置 :set backup ,那么当更动 hosts 时,在同目录下,就会产生 hosts~ 文件名的文件,记录原始的 hosts 文件内容 |
:set ruler | 还记得我们提到的右下角的一些状态列说明吗?这个ruler就是在显示或不显示该设置值的啦! |
:set showmode | 这个则是,是否要显示 --INSERT-- 之类的字眼在左下角的状态列。 |
:set backspace=(012) | 一般来说,如果我们按下 i 进入编辑模式后,可以利用倒退键 (backspace) 来删除任意字的。 但是,某些 distribution 则不许如 此。此时,我们就可以通过 backspace 来设置啰~ 当 backspace 为 2 时,就是可以删除任意值;0 或 1 时,仅可删除刚刚输入的字符, 而无法删除原本就已经存在的文字了! |
:set all | 显示目前所有的环境参数设置值。 |
:set | 显示与系统默认值不同的设置参数,一般来说就是你有自行变动过的设置参数啦! |
:syntax on | 是否依据程序相关语法显示不同颜色? 举例来说,在编辑一个纯文 本文件时,如果开头是以 # 开始,那么该列就会变成蓝色。 如果你:syntax off 懂得写程序,那么这个 :syntax on 还会主动的帮你除错呢!但是, 如果你仅是编写纯文本,要避免颜色对你的屏幕产生的干扰,则可以取消这个设置 。 |
:set bg=dark :set bg=light | 可用以显示不同的颜色色调,默认是“ light ”。如果你常常发现注解 的字体深蓝色实在很不容易看, 那么这里可以设置为 dark 喔!试看看,会有不同的样式呢! |