[toc]
-
=shift+g
快速缩进到这一列 -
U:一步一步撤销
-
跳到第一行:行号 ----跳到指定的行号去
-
连续按两次小
g
:跳到第一行上面去 -
Shift +g
:最后一行
::: tip 什么是vim? vim是一款类似于vi的功能强大的文本编辑器且对比于传统的vi编辑器得到了很大的功能上的提升,在类Unix系统中得到了广泛的使用。通过简单的配置,就可以完成强大的学习。
:::
如果你的操作系统(类Unix系统)上没有vim编辑器,请先安装它!以ubuntu操作系统为例:
- 安装vim:
sudo aptitude install -y vim
-
使用vim打开文件:
vim 文件名
-
使用vim打开一个文件
sudo vim /etc/passwd
-
精确定位到要编辑文件的行数
sudo vim +18 /etc/passwd
-
使用vim一次性打开多个文件
sudo vim -O /etc/passwd /etc/group
这样vim可以打开两个文件,光标默认在最左边的窗口中,可以直接编辑里面的内容。使用Ctrl + W 可以切换到另外一个窗口(切换之前需要保存写入的内容)。
-
配置
vim
(可在vim
配置文件vimrc
中写入)- 显示行号
: set nu
- 自动缩进
: set ai
- 语法高亮显示
: syntax on
- 显示行号
-
VIM 中执行SHELL命令
:! gcc -o hello hello.c
定义快捷键
进入vim配置文件
sudo vim /etc/vim/vimrc
noremap <F6> :set nu
noremap <F7> :set ai
noremap <F8> :syntax on
高效配置:
filetype on # 启用文件类型侦测
set encoding=cp936 # 指定当前字符编码为 Windows 简体中文
set tabstop=4 # 设置 Tab 键为4个空格
set mouse=a # 在终端中使用鼠标
set ignorecase # 查找时忽略大小写
set helplang=cn # 在安装完中文帮助文档后设置帮助文档的语言
help user # 查阅中文手册
help user_num(范围:01-32) # num可以直接定位到章节
help tag # tag为手册名称
个人使用的vim配置 /主目录打开
vim ~/.vimrc
: set nu
: set ai
: syntax on
: filetype on
set tabstop=4
set ignorecase
noremap <F6> :set nu
noremap <F7> :set ai
noremap <F8> :syntax on
noremap <F5> :! g++ -o
vim 有三种基本工作模式:命令模式、文本输入模式、末行模式。
tip details 命令模式: 任何时候,不管用户处于何种模式,只要按一下ESC键,即可使Vi进入命令模式;我们在shell环境(提示符为$)下输入启动Vi命令,进入编辑器时,也是处于该模式下。在该模式下,用户可以输入各种合法的Vi命令,用于管理自己的文档。此时从键盘上输入的任何字符都被当做编辑命令来解释,若输入的字符是合法的Vi命令,则Vi在接受用户命令之后完成相应的动作。但需注意的是,所输入的命令并不在屏幕上显示出来。若输入的字符不是Vi的合法命令,Vi会响铃报警。
编辑模式:
在命令模式下输入插入命令i(当前位置插入)、a(当前位置后一位置插入) 、o(下一行插入)可以进入文本输入模式。在该模式下,用户输入的任何字符都被vi当做文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按键ESC即可。
末行模式:
在命令模式下,用户按“:”键即可进入末行模式下,此时Vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为末行模式的提示符,等待用户输入命令。多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)。末行命令执行完后,Vi自动回到命令模式。
如果要从命令模式转换到编辑模式,可以键入命令a或者i;如果需要从文本模式返回,则按Esc键即可。在命令模式下输入“:”即可切换到末行模式,然后输入命令。
:::
进入编辑模式
命令 | 含义 |
---|---|
i和I | i在光标前插入,I在行首插入 |
a和A | a在光标后插入,A在行末插入 |
o和O | o在光标所在行下一行插入,O在光标所在行上一行插入 |
移动光标
命令 | 含义 |
---|---|
h | 光标向左移动 |
j | 光标向下移动 |
k | 光标向上移动 |
l | 光标向右移动 |
H、M、L | 光标移动到到可见屏幕第一行(H)、中间行(M)、最后一行(L) |
^和$ | ^移动到行首,$移动到行末 |
G和gg | G文档最后一行,gg文档第一行 |
ctrl+f、ctrl+b | 向前翻屏、向后翻屏 |
ctrl+d、ctrl+u | 向前半屛、向后半屛 |
{ 和 } | {向上移动一段,}向后移动一段 |
w和b | 向前移动一个单词,向后移动一个单词 |
删除命令
命令 | 含义 |
---|---|
X和x | x删除光标后一个字符,X删除光标前一个字符,包含光标位置字符 |
dd和 n dd | dd删除所在行,5 dd删除指定行数 |
d0和D | d0删除光标前本行所有内容,D删除光标后本行所有内容,包含光标位置字符 |
dw | 删除光标所在位置的字,包含光表所在位置字符 |
撤销命令
命令 | 含义 |
---|---|
u | 一步一步撤销 |
ctrl + r | 反撤销 |
重复命令
命令 | 含义 |
---|---|
. | 重复执行上一次操作的命令 |
复制粘贴
命令 | 含义 |
---|---|
yy | 和 n yy 和y$ y^ yy复制当前行,5 yy复制5行 |
p | 在光标所在位置向下新开一行粘贴 |
选择文本
命令 | 含义 |
---|---|
v 和 V | v选择单个字符,V选择整行 |
<<和>> | 选择文本之后,向左缩进,向右缩进 |
查找替换
命令 | 含义 |
---|---|
命令模式下,r和R | r替换当前字符,R替换光标后的字符 |
末行模式下,/ + str | n查找下一个,N查找前一个 |
末行模式下,%s/abc/123/g | 将文件中所有abc替换为123 |
末行模式下,1, 10s/abc/123/g | 将第一行至第10行之间的abc替换成123 |
-
随时可查阅的 VIM 手册
http://soruceforge.net/projects/vimdoc/files/vimcdoc/vimcdoc-1.9.0.tar.gz/download
-
使用vim插件
vim插件官网: https://www.vim.org/scripts/script.php?script_id=273
-
插件一般安装步骤(以TagList插件为例):
解压缩包
sudo unzip taglist_46.zip
将xxx.vim复制到/etc/vim/plugin目录下
cd plugin sudo cp -rf taglist.vim /etc/vim/plugin
重启VIM后输入命令
:Tlist
https://github.com/junegunn/vim-plug 安装vim插件
vim ~/.vimrc中
call plug#begin('~/.vim/plugged')
call plug#end()
https://github.com/mhinz/vim-startify
现在安装Vundle,如下所示。请注意:Vundle本身是另一种Vim插件。因而,我们将Vundle安装在之前创建的~/.vim/bundle下。
git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim
-
✴️版权声明 © :本书所有内容遵循CC-BY-SA 3.0协议(署名-相同方式共享)©