vim是一个文本编辑器,在不安装特定插件的情况下,并不适合debug和大型项目,适用场景是自己手动敲一些代码和情怀。下文讲一下vim编辑器的简单使用。
目录:
- 终端光标介绍
- 四种不同模式
- Vim插件安装
- 使用 Vim 调试
- 参考内容
终端光标介绍
矩形光标的开口为左面和下面。即i
从光标左侧输入,p
从光标下侧粘贴。backward,forward记忆时,你可以将vim想象成一个从屏幕左上开始,需要去屏幕右下的路径,forward即向前/下,backward即向回/上,jump向下跳。
你如果使用鼠标对代码进行框选,则光标落点包含所选代码。
四种不同模式
vim分为四种模式:normal mode,insert mode,command mode,visual mode。
模式简介
normal mode:正常模式,一进入vim,便是进入该模式,主要用来浏览代码。(注意下图左下角什么都没)。
insert mode:编辑模式,写代码时候进入该模式。(注意下图左下角有-- INSERTER –)。
command mode:命令模式,当你敲入在normol模式下敲:
即进入该模式,该模式用来对文档以及vim编辑器进行操作,如文档保存、语法高亮、插件安装等。(注意下图左下角有冒号)。
visual mode:可视化模式,用于选择部分代码。(注意下图左下角有-- VISUAL –)。
模式间转化
如果不知道进入什么模式了,任何模式下,点按两次esc
进入normal mode便可。
Normal mode下基本操作
Normal mode主要功能是对文档内容进行浏览和删除等操作,常用操作如下:
移动
光标左移:h
。99h
是向左移动99行,下面lkjwb同理。
光标右移:l
光标上移:k
光标下移:j
。记忆方法j - jump。
光标向右移动一个单词:w
。记忆方法w-word。
光标向左移动一个单词:b
。记忆方法b-back[ a word]。
翻页
向下翻一页:control + f
。记忆方法f-forward。
向上翻一页:control + b
。记忆方法b-backward。
向下翻半页:control + d
。d-down。
向上翻半页:control + u
。u-up。
定位
精准定位到某一行(如第七行):gg7
剪切复制粘贴
剪切:dd
。d-delete,d7d
删除七行,下面ccyypp同理。
剪切后进入insert mode:cc
。c-cut。
复制:yy
。
粘贴:pp
。p-paste。
Insert mode
Insert mode主要功能是用来敲代码的,主要讲解如何自动补全代码和几种从Normal mode下进入 Insert mode 的方法。
自动补全
Vim自动补全代码是补全该文档中已经出现的字段,通过control + n
和 ↑↓ enter
实现。
进入Insert mode方法
从光标处进入Insert mode:i
从光标下方新建一行并进入Insert mode:o
从光标右方进入Insert mode:a
Visual mode
Visual mode主要功能是用来框选代码的,使用方式如下。
我们在Normal mode下输入v进入visual mode,使用hlkjwb,control+d等对光标进行移动,选择完毕我们需要的部分代码后使用d等对选择代码部分进行操作(注意只需要输入1个d)。
Command mode
Command mode主要是对文档内容查找、保存、Vim编辑器设置和安装插件。
查找文档内容
在Normal mode下输入/和你要查找的内容,如/class
就是我们要寻找关键字class,输入完毕后enter回车。使用n
查找下一个关键字n - next,使用shift + n
查找上一个关键字。
保存文档
输入:
后对文档进行保存,退出等操作。
保存::w
退出::q
保存退出::x
或者:wq
不保存退出::q!
Vim编辑器设置
我们可以通过使用一些命令设置Vim编辑器,如下:
语法高亮::syntax on
显示行号:set number
Vim插件安装
Vim编辑器可以自定义配置,也可以安装很多插件。这些操作通过更改~/.vimrc
文件实现。如语法高亮,显示行号就可以直接将vimrc如下修改实现:
vim ~/.vimrc
# .vimrc中增加
syntax on
set number
# 保存并退出
:x
使用源码添加插件
搜索一下vimrc github,我们直接将源码内容粘贴进.vimrc文件中。网址:https://github.com/amix/vimrc/blob/master/vimrcs/basic.vim
使用vim-plug安装插件
搜索vim plug,这里举例使用vim awesome安装the nerd tree。
我们先要安装Vim-Plug
,在终端输入如下命令安装vim-plug。
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
安装完vim-plug后,我们在vim awesome中搜索到我们需要安装的The NERD tree,按照提示进行安装,vim awesome域名https://vimawesome.com/
。
我们将.vimrc打开,输入刚才网页中的代码后保存退出:
call plug#begin()
Plug 'scrooloose/nerdtree'
call plug#end()
我们打开vim,在底部输入PlugInstall
进行安装:
# 进入vim编辑器
vim
# 进行安装
:PlugInstall
为了自动启动NERDTree,我们打开.vimrc输入如下代码:
autocmd VimEnter * NERDTree
使用control + w
进行两个窗口间跳转。
删除
打开.vimrc,将plug中内容删除。
call plug#begin()
"删除"
call plug#end()
" 20230429 delete NERDTree
" autocmd VimEnter * NERDTree
打开vim,输入PlugClean
:PlugClean
使用 Vim 调试
这里推荐使用vscode + vim插件进行调试,本质上是使用了vscode的调试功能,但是用vim编辑器敲代码。
参考内容
参考:
- 官方文档Vim document
https://www.vim.org/docs.php
- vim入门教程(共3讲)
https://www.bilibili.com/video/BV1Yt411X7mu/
- Vim基本使用方法
https://www.jianshu.com/p/8b679b35c9d5
- Linux Vim编辑器的基本使用
https://blog.csdn.net/hsforpyp/article/details/113833465
- 如何在Vi / Vim中进行撤消和重做操作
https://zhuanlan.zhihu.com/p/106860607
- 教你如何使用vim调试你的代码
https://www.bilibili.com/video/BV1JT4y1u7aE/?vd_source=61b5ff132eca1d44ecddf022bf9b9def