一、vim使用介绍
vim介绍
在Linux系统中,大多数配置文件以ASCII的纯文本形式保存,因此在修改系统设置时,只需使用简单的文本编辑软件即可。如果你曾经使用过Windows中的Word,可能会觉得Linux字符界面的文本编辑工具不够友好,因为它们没有图形窗口,看起来不那么舒适。然而,学习Linux要求掌握并熟练使用文本编辑工具。Linux中有许多文本编辑工具,例如emacs、pico、nano、joe、vi/vim等。
为什么选择学习vi/vim?
虽然Linux下有众多文本编辑器,每种工具都有其独特的优点,但vi/vim具有一些其他编辑工具无法比拟的优势:
综上所述,vim是一个功能齐全的老式文本处理工具,不仅适用于文本处理,还可以作为程序编辑工具。官方网站也将其描述为程序开发工具而非文字处理软件,因为它包含了许多额外功能,如多文件编辑、区块复制等,这些功能在修改配置文件时非常方便。
接下来,我们将详细介绍vim的基本使用方法。
二、基本使用
vi/vim是一个全屏幕文本编辑器,工作在三种模式下:命令模式、输入模式和末行模式。可以从命令模式切换到输入模式和末行模式,也可以从末行模式或输入模式切换到命令模式,但输入模式与末行模式之间不能直接切换。

第一种:命令模式。当使用“vim myfile”命令打开myfile文件时,vim即进入命令模式。屏幕左下角会显示文件名(myfile),1L表示文件有1行,26C表示文件有26个字符。1,25表示光标当前位置。在此模式下,用户可以输入命令进行文件保存、移动光标、删除字符、撤消和重复命令等操作,还可以设置编辑环境。
this is the command mode.~ ~ 表示没有内容 "myfile" 1L, 26C 1,25 全部
第二种:编辑模式,又称为输入模式。在输入模式下,屏幕左下方会显示INSERT(插入)字样。此时,用户可以输入文本内容。
this is the command mode.~ ~ ~ ~ -- 插入 -- 1,25 全部
第三种:末行模式。在命令模式下输入“:”即可进入末行模式。在末行模式下,可以进行保存文件、退出vi、查找和替换等操作。
this is the command mode.~ ~ ~ ~ :q!
介绍完三种模式后,我们将继续探讨vim的具体使用方法,仍然按照三种模式进行说明。
命令模式可以使用的按键说明
光标控制按键:
| 按键 | 功能 |
|---|---|
| h 或 向左箭头键(←) | 光标向左移动一个字符 |
| j 或 向下箭头键(↓) | 光标向下移动一个字符 |
| k 或 向上箭头键(↑) | 光标向上移动一个字符 |
| l 或 向右箭头键(→) | 光标向右移动一个字符 |
| 15j/15↓ | 向下移动15行 |
| [Ctrl] + [f] | 屏幕『向下』移动一页,相当于 [Page Down] 按键 (常用) |
| [Ctrl] + [b] | 屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用) |
| [Ctrl] + [d] | 屏幕『向下』移动半页 |
| [Ctrl] + [u] | 屏幕『向上』移动半页 |
| n | n为数字,按下数字后再按空格键,光标向右移动n个字符 |
| 0 或功能键[Home] | 移动到当前行的最前面字符处 (常用) |
| $ 或功能键[End] | 移动到当前行的最后面字符处 (常用) |
| H | 光标移动到屏幕的最上方行的第一个字符 |
| M | 光标移动到屏幕的中央行的第一个字符 |
| L | 光标移动到屏幕的最下方行的第一个字符 |
| G | 移动到文件的最后一行 (常用) |
| nG | n为数字,移动到文件的第n行。可配合 :set nu |
| gg | 移动到文件的第一行,相当于 1G (常用) |
| n | n为数字,光标向下移动n行 (常用) |
搜索与替换:
| 按键 | 功能 |
|---|---|
| /abc | 向光标之下查找字符串abc (常用) |
| ?abc | 向光标之上查找字符串abc |
| n | 重复前一个查找动作 (常用) |
| N | 与n相反 (常用) |
| :n1,n2s/abc1/abc2/g | 在第n1与n2行之间查找abc1替换为abc2 |
| :1,$s/abc1/abc2/g | 从第一行到最后一行查找abc1替换为abc2 (常用) |
| :1,$s/abc1/abc2/gc | 从第一行到最后一行查找abc1替换为abc2,并在替换前显示提示字符给用户确认 |
删除与复制粘贴:
| 按键 | 功能 |
|---|---|
| x, X | x相当于[del],X相当于[backspace] (常用) |
| 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 | 重复删除多个数据,例如向下删除4行,[4cj],配合上下左右的按键使用 |
| u | 撤销操作 (常用) |
| [Ctrl]+r | 重做上一个动作 (常用) |
从命令模式进入输入模式:
| 按键 | 功能 |
|---|---|
| i, I | i从当前光标所在处插入,I在当前所在行的第一个非空处开始插入 (常用) |
| a, A | a从当前光标所在的下一个字符处开始插入,A从光标所在行的最后一个字符处开始插入 (常用) |
| o, O | o在当前光标所在的下一行处插入新的一行;O在当前光标所在处的上一行插入新的一行 (常用) |
| r, R | r只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下ESC为止 (常用) |
| [Esc] | 退出输入模式,回到命令模式中 (常用) |
从命令模式进入到末行模式:
| 按键 | 功能 |
|---|---|
| :w | 保存 (常用) |
| :w! | 若文件属性为『只读』时,强制保存,是否能保存与权限有关 |
| :q | 不保存退出 (常用) |
| :q! | 强制退出不保存 |
| :wq | 保存退出,:wq!则为强制保存退出 (常用) |
| ZZ | 若文件没有更动,则不保存离开,若文件已经被更动过,则保存后离开! |
| :w [filename] | 将编辑的数据保存为另一个文件(类似另存新档) |
| :r [filename] | 在编辑的数据中,从指定的文件读取数据并加到光标所在行后面 |
| :n1,n2 w [filename] | 将n1到n2的内容保存为filename文件 |
| :! command | 在系统中执行指定的命令 如 :! ls /home |
vim环境的变更:
| 按键 | 功能 |
|---|---|
| :set nu | 显示行号 |
| :set nonu | 取消行号 |
三、额外功能区块选择
| 按键 | 功能 |
|---|---|
| v | 字符选择,选中光标经过的地方 |
| V | 选中光标经过的行 |
| [Ctrl]+v | 区块选择 |
| y | 复制选中的部分 |
| d | 删除选中的部分 |
多文件编辑:
| 按键 | 功能 |
|---|---|
| :n | 编辑下一个文件 |
| :N | 编辑上一个文件 |
| :files | 列出目前这个vim开启的所有文件 |
多窗口编辑:
| 按键 | 功能 |
|---|---|
| :sp/:vsp [filename] | 开启一个新窗口,如果加filename,表示在新窗口编辑指定的文件,否则表示两个窗口为同一个文件(同步显示) |
| [ctrl]+w+ j [ctrl]+w+↓ | 按键的按法是:先按下[ctrl]不放,再按下w后放开所有的按键,然后再按下j(或向下箭头键),则光标可移动到下方的窗口 |
| [ctrl]+w+ k [ctrl]+w+↑ | 同上,不过光标移动到上面的窗口 |
| [ctrl]+w+ q | 退出光标所在窗口,也可以[ctrl]+w+j/k切换窗口后,按下:q即可离开,也可以按下[ctrl]+w+q |
环境变量与记录:
| 按键 | 功能 |
|---|---|
| :set nu /:set nonu | 设定与取消行号 |
| :set hlsearch /:set nohlsearch | 搜索时是否高亮显示。默认值是hlsearch |
| :set autoindent :set noautoindent | 是否自动缩排?autoindent就是自动缩排 |
| :set backup/:set nobackup | 是否自动备份,一般是nobackup的,如果设定backup的话,那么当你更动任何一个文件时,则源文件会被另存成一个文件名为filename~的文件 |
| :set ruler/:set noruler | 是否显示右下角的一些状态栏说明 |
| :set showmode/:set noshowmode | 是否显示左下角的状态栏 |
| :set backspace=(012) | 一般来说,如果我们按下i进入编辑模式后,可以利用backspace来删除任意字符的。但是,某些版本则不许如此。这时就可以使用这个设置2可以删除任意;0或1仅可删除刚刚输入内容 |
| :set all | 显示目前所有的环境变量设定值 |
| :set | 显示与系统默认值不同的设置,用户修改过的 |
| :syntax on :syntax off | 是否显示颜色 |
| :set bg=dark :set bg=light | 可用以显示不同的颜色色调,预设是『light』。如果你常常发现批注的字体深蓝色实在很不容易看,那么这里可以设定为dark喔!试看看,会有不同的样式呢! |
密码设置与取消:
加密:
vim filename--->:X--->输入密码--->保存(否则不加密)
取消密码:
vim filename--->输入正确密码--->:X--->空密码--->保存vim filename--->:set key= --->保存注意:不要对系统文件进行加密的操作
vim插件:
1、虚拟机网卡设置为NAT2、释放IP并重新获取IPdhclient -r ensxxdhclient ensxx3、安装EPELyum源dnf install epel-release -y4、安装vim插件dnf install vim-airline -y
vimdiff&vimtutor:
四、使用中的注意事项
由于某些Linux版本默认只安装了vi,因此可能需要额外安装vim软件包。如何安装软件包会在后续课程中讲解。此外,vim在字符界面下无法输入中文,而在图形界面下能否输入中文则取决于系统中是否安装了中文输入法。
字符差异:
由于Linux和Windows系统的差异,它们对文件中的一些特殊符号表示方式不同,比如用来表示换行的符号等,如:
[root@zutuanxue ~]# cat -A hello-linux.txt hello$$[root@zutuanxue ~]# cat -A hello-windows.txt hello^M$^M$
如果这种文件是从Windows拷贝到Linux的一本小说,基本没什么问题,但如果是一个需要执行指定工作的shell脚本,就会出现问题,因为Linux不认识这种符号的含义,导致shell脚本无法执行。因此,需要对这种文件进行处理:
[root@zutuanxue ~]# unix2dos [-kn] file [newfile]选项与参数:-k :保留文件原本的 mtime 时间格式-n :保留旧文件,将转换后的内容输出到新文件,如: dos2unix -n old new
以上就是VIM文本编辑器的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号