让我教你把vim用飞起来

我的vim

我的完整的vim配置文件,在这里

什么是vim

有人说“世界上只有三种编辑器,EMACS、VIM和其它”

vim其实就是一个Linux下边的文本编辑器,类似于Windows中的记事本。但是这个vim对于新手来说并不是很好用,可谓是“引无数英雄竞折腰”啊。导致很多人因此放弃。其实这也就是个工具,也没什么难的。

其实在我们的linux发行版中就有关于vim的教程的,我们在终端输入命令vimtutor -g zh就会看见中文版的vim教程,这里我自己简单总结一下。

比如我们执行vi a.c的时候,如果存在a.c这个文件则打开,不存在则会自行创建。

在vim中是在命令模式下,使用hjkl这四个键,进行上下左右移动鼠标光标的。

学习vim不仅仅是只能在Linux中才能使用,现在的很多软件都支持vim模式,甚至有一些专门的插件来支持。

编辑模式

在刚进入vim的界面时,是无法输入的,这跟记事本可就大大不同了。
我们需要按下a或者A或者i或者I或者o或者O才能进入编辑状态。

a  append  在当前字符后面插入
i  insert  在当前字符前面插入
o  open a line below   在当前行的下一行插入
O  open a line above   在当前行的上一行插入
A  append after line   在当前行最后面插入
I  append before line  在当前行最前面插入

当我们想退出编辑模式时,就按下esc键就行了。

保存和退出

按下的那个冒号,代表我们进入了底线模式。一会输入的字符,都会在底下显示,而不会当做vim的命令。

:wq这是保存并退出的意思。

:q这是只退出不保存的意思

:q!这是强制退出,并且不保存的意思

:w这是只保存不退出的意思

如果我们最开始没指定打开哪个文件,终端直接使用了vim这个命令,那么我们在指定保存文件名时只需要在保存命令后面跟上想要保存的文件名就行了。

命令

v 可视化命令,接下来可以使用hjkl选中想要部分。
V 可视化命令,会选中光标当前的一整行。
:vs 竖分屏 按下:q退出
:sp 横分屏 按下:q退出
在分屏模式下,可以使用<ctrl w>w循环切换窗口。
<ctrl w>h <ctrl w>j <ctrl w>k <ctrl w>l来上下左右切换鼠标所在窗口。窗口中的文件可以不一样。
<ctrl w>H <ctrl w>J <ctrl w>K <ctrl w>L是把当前窗口移动到左下上右的。
可以看下边的多文件操作中打开文件的方法打开其他的文件。
输入f再输入想查找的字母,就会自动查找到那个字母并跳转过去

撤销类命令

u用来撤销最后一次操作的命令

​U用来撤销已经撤销的操作

删除类命令

x 删除光标所在的字母
dw删除光标所在处的一个单词
​d$删除光标所在处之后的一整行东西,直到行末
​dd删除光标所在的一整行
​ndd删除包括光标所在的行共n行

搜索命令

​ /share就是在整个文档中搜索share这个单词,光标会自动跳转到第一次出现的位置,继续输入n就会继续向下查找,输入N会向上查找。

查找配对括号

把光标放在任何一个 (、[ 或 { 处,接着按 % 字符,就会自动找到配对的括号

替换类命令

输入 :s/thee/the <回车> 。请注意该命令只改变光标所在行的第一个匹配串。
输入 :s/thee/the/g 则是替换全行的匹配串,该行中所有的 “thee” 都会被改变。
输入 :%s/old/new/g 会找到整个文件中的每个匹配串,且不询问
输入 :%s/old/new/gc 会找到整个文件中的每个匹配串,并且对每个匹配串提示是否进行替换。

跳转和翻页

gg自动跳转到文档开头
G跳转到文档末尾
ngg跳转到文档的第n行
Ctrl d向下翻页
Ctrl u向上翻页

复制粘贴类命令

​yy  复制一整行
nyy 复制n行
​p   粘贴,不用进入插入模式,直接按下p就粘贴上了,应该是粘贴到当前行的下一行

vim多文件处理

我们可以同时打开多个文件,比如vi a.c b.c 但是只会在窗口处显示一个文件,我们可以通过命令:ls显示出所有文件的缓冲区,可以通过:b 2就跳转到显示缓冲区中的第二个文件,也可以通过:b a.c直接跳转到a.c这个文件。
我们也可以通过这个:e ./b.c打开当前文件夹下的b.c这个文件。

vim也有寄存器

在我们使用复制粘贴剪切的时候就会用到寄存器,平时默认用的都是无名寄存器,这个不用去管啦。同时我们还可以使用vim中的其他的寄存器。

比如我们在鼠标光标所在行使用"a yy这个命令时,这一行就被复制到了a这个寄存器,可以使用:reg a来查看寄存器a中的内容,粘贴时使用"a p来粘贴操作。除了a-z这些寄存器还有其他寄存器,比如+寄存器,这是系统剪切板使用的。使用系统剪切板首先在vim中用:echo has('clipboard')看输出是否为1代表是否支持。

vim中的宏

vim宏的使用就像录电影,先录制一套操作,之后回放就可以对于别的地方执行这一套操作了。

比如需要给文件的每一行都加上双引号,我们需要先使用qa来开始录制,a是我们要保存到的寄存器,然后我们正常执行我们的操作就行了,然后停止录制q,最后我们可以使用可视化模式选中全文,然后回放该操作n@a
n代表数字,想执行几次。

vim配置

vim的配置在~/.vimrc中,如果没有这个文件,那就新建一个。
可以设置永久实现某些功能,比如显示行号,可以直接在vimrc文件中写上:set nu,以后打开的文件都会显示行号。过一会我们还会在这里配置插件。

这里写几个配置

:set nu #设置行号
syntax on #语法高亮
set hlsearch #设置高亮搜索

配置相当的多。

vim映射

vim映射就是把一个操作映射到另一个操作。通常用于不满足于现在的按键设置。
在.vimrc 中写
映射分为很多种,map命令是递归的,一般不要使用,还有nnoremap(正常模式下的非递归映射)、vnoremap(可视模式下的非递归映射)、inoremap(插入模式下的非递归映射)等非递归模式
比如

let mapleader=',' #领导键映射为,键
inoremap <leader>w <Esc>:w<cr> #在插入模式下按下,w就会保存
nnoremap <leader>w :w<cr>  #在正常模式下按下,w就会保存
noremap a b#会在你按下键盘a的时候vim将它识别为b

有些时候Esc键离我们有一些远,我们可以把Esc映射为jj键,因为很少使用jj两个同时出现。
方法:

inoremap jj <Esc>`^

vim插件

使用插件管理器推荐vim-plug,在Linux中可以使用这个命令在终端中直接安装

curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

官网都有介绍
在.vimrc中添加下面的代码

" Specify a directory for plugins
" - For Neovim: ~/.local/share/nvim/plugged
" - Avoid using standard Vim directory names like 'plugin'
call plug#begin('~/.vim/plugged')

" Initialize plugin system
call plug#end()

我们来安装一个插件测试一下,安装vim-startify这个插件在终端使用vim时可以显示最近打开的文件和好看的界面。
首先在.vimrc中上面添加的vim-plug的call plug#begin('~/.vim/plugged')之后加上Plug 'mhinz/vim-startify'就行了,这是官方教的方法,看文档就知道了。然后我们需要执行:source ~/.vimrc:PlugInstall,就完成了
vim
更多插件请看我开头的给的链接,里边也有详细的讲解

修改 vim 主题配色

修改.vimrc文件,在插件列表中添加如下内容

Plug 'w0ng/vim-hybrid'

在末行模式下输入:w保存该文件,再在末行模式下输入:source ~/.vimrc使配置文件生效,接着在末行模式下输入:PlugInstall安装插件。待安装完成后,在末行模式下输入:qa退出。

创建~/.vim/colors文件夹

mkdir ~/.vim/colors

将主题文件移动到colors文件夹下

cp ~/.vim/plugged/vim-hybrid/colors/hybrid.vim ~/.vim/colors/hybrid.vim

使主题永久生效
接着修改.vimrc文件,在插件列表上面空行处添加如下内容

set background=dark
colorscheme hybrid

在末行模式下输入:w保存该文件,再在末行模式下输入:source ~/.vimrc使配置文件生效,在末行模式下输入:qa退出。

Last modification:October 11th, 2019 at 09:47 pm
如果觉得我的文章对你有用,请随意赞赏

Leave a Comment