前言
同事在闲鱼淘了一个Magic Keyboard Gen1结果没用几天,escape的按键就坏掉了,但是已经确认收货了…..他舍不得钱浪费还想继续用,就罗列了一下escape的场景,发现最高频的还是在vim
中进行模式切换。有这个契机就分享一下我自己在mac下简单对vim的改造,不仅好用而且可以摆脱escape。
简单介绍一下vim,它是一个文本编辑器,其实就和mac上面的文本编辑.app差不多,只不过它的交互哲学是通过键盘完成一切。在这里我不想吹vim,作为javaer而言难道世界上还有比intellij还更香的IDE吗?更别说文本编辑器🤡(逃~)。当然我也见识过真正的vim大神,原来公司有php组,有前辈大部分时候都是直接在服务器上编写代码很少用IDE,摸键盘和弹琴一样,刷刷刷~。
为啥说简单改造呢,因为原来也痴迷过vim,也觉得在vim上写代码看起来好厉害,也曾经折腾过高亮,提示,搜索,跳转非常酷炫,可是真要写jvm代码还是得看intellij,增加学习上手成本并且收益非常低。不过即便没有在服务器上编码的需求,肯定会有修改配置文件场景,所以我更加建议先对vim进行小小的顺手改造,待以后有了服务器编码需求,可以再把相关插件以及自定义键位加上。
配置和插件
提一嘴,mac是自带vim,网上有大佬建议使用MacVim替换系统vim。我不建议,一方面是懒,另外一方面MacVim除了内部继承vim优化最大的特点就是自带GUI,但是vim本来就是强调丢弃鼠标,感觉和理念有点违背,更别说现在2021年了MacVim对shell的支持还是很不到位,如果你和我一样是这是简单的CLI需求,我也建议你别换。
另外从Mojave(10.14.x开始,MacOS内置的vim版本已经是8.x了,你要的需求自带的vim都可以满足。
修改配置方法
Mac自带vim的默认配置文件在/usr/share/vim/vimrc。这个文件是系统级(全局)的vimrc配置文件,为了保证vim的正常运行,一般并不会修改这个文件。而是在~目录下创建一个新的用户级vimrc文件。在终端中键入touch ~/.vimrc
手动创建一个配置文件(放心vim会自动读取这个文件),值得注意的是,我这里创建的是隐藏文件,而全局配置文件是正常的非隐藏文件,隐藏和不隐藏都可以,看个人习惯(.xxx隐藏,xxx非隐藏)
然后如果需要对vim做内置配置修改或者自定义键位配置都往这里面加修好了,不用重启就可以生效。
安装插件的方法
vim安装插件的话,你可以直接按照vim官网的指南进行手动安装。但是我更加建议使用包管理器,后期更新都很方便,这里推荐vim-plug。如果你可能会看别人推荐vundle
,但是它已经不再更新了,vim-plug
不仅承诺会一直更新并且它提供非常翔实的文档
安装也非常简单,它github上有各个版本的安装指南,如果是unix(mac和linux都是)直接在shell里面输入
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
即可,如果输入后一直卡进度条,可以看看我这篇文章的终端代理或者在它官网下载.vim脚本然后手动把脚本放到~/.vim/autoload/
下(如果没有则自己创建一下就好了)
安装好了以后你需要一个插件市场然后找到对应的包名,有点像maven的坐标,vim-plug就是maven帮你管理各种依赖,maven远程中央仓库就是插件市场。除非你能把坐标背下来不然你需要去中央仓库获取坐标然后写到maven的pom文件中。在vim的插件中你需要去插件市场找到对应的命令然后写到.vimrc中,使用命令再安装(相当于。
我使用的插件市场vimawesome,插件非常全,并且不只是支持vim-pulg还支持市面上其他的包管理器
你有了vim-plug
以及收藏了vimawesome
,安装插件按照vim-plug
文档上的描述操作就好了。当然下面也会分享一些插件告诉大家怎么装。
推荐修改配置
开启高亮
mac默认的vim配置是没有高亮的,我可以看不懂代码,但是代码不能不高亮。我随便编辑一个startup文件,里面有一些默认的配置和自定义配置看一下有高亮和没高亮的对比。
这个对比我相信不用我多说,我每次看组里面写安卓的同学满屏的花花绿绿就觉得好厉害,代码颜色越多应该技术越好吧🤡
开启高亮非常简单只需要在shell里面输入vim ~/.vimrc
,然后里面添加syntax on
,然后:wq
保存即可,然后你再去vim看看你的代码,是不是有高亮了呢。
突出显示行
只需要在shell里面输入vim ~/.vimrc
,然后里面添加set cursorline
然后就可以获取下面的效果,光标停留在的这一行可以进行下划线的回显,在修改配置的非常好用,尤其是使用/
来进行查找经常要眼睛到处瞟一瞟才能知道现在定位到哪里了
缩进一致
我的vim大部分都是修改服务器上面的配置,有时候修改之前会做注释之类的,我第一行的缩进了,第二行换下来的时候不会自动保持缩进,还需要手动敲。在.vimrc
中添加set autoindent
可以下一行的缩进自动跟上一行的缩进保持一致。
替换escape按键
escape用的比较多的通常是从编辑模式退回到浏览模式,escape比较远但是用的比较舒服的核心键位都被占用了,我的解决办法是使用组合键,快速敲击j+k相当于代替escape。
修改方法也很简单,在~/.vimrc
里面添加imap jk <Esc>
就好了,jk可以换成你想要的其他按键,只不过我习惯jk。
最终效果如下,在里面写内容的时候使用jk组合键就可以快速切回到预览模式
替换:
按键
:
必须要使用shift+;
才可以激活,作为懒癌来说实在是不想按两个键,但是从预览模式进入命令模式又是每次和vim交互都需要做的操作。仔细思考发现在预览模式下,空格键其实是浪费的,因为预览模式下面的编辑都是依赖字母键没有占用空格键键。所以我把空格键设置成:
用来进入命令模式。设置也非常简单在~/.vimrc
里面添加nmap <space> :
就好了。
效果如下
其他
其实大家可以按照自己的习惯去设置,键位映射来说,使用xmap就可以完成。其中x是动态的值,不同的x对应不同的功能,具体给大家做了一个表,大家可以发挥想象去自定义映射
x | 含义 |
---|---|
nore | 非递归 |
n | 普通模式生效 |
v | 可视模式生效 |
i | 插入模式生效 |
c | 命令行模式生效 |
un | 后面跟组合键, 表示删除这个映射 |
clear | 清楚相关模式下所有映射 |
其他的配置的话,这里也给大家总结了一下
# 自动语法高亮
syntax on
# 开启插件
filetype plugin indent on
# 关闭 vi 兼容模式
set nocompatible
# 显示行号
set number
# 突出显示当前行
set cursorline
# 打开状态栏标尺
set ruler
# 设定 << 和 >> 命令移动时的宽度为 4
set shiftwidth=4
# 使得按退格键时可以一次删掉 4 个空格
set softtabstop=4
# 设定 tab 长度为 4
set tabstop=4
# 覆盖文件时不备份
set nobackup
# 自动切换当前目录为当前文件所在的目录
set autochdir
# 设置备份时的行为为覆盖
set backupcopy=yes
# 搜索时忽略大小写,但在有一个或以上大写字母时仍保持对大小写敏感
set ignorecase smartcase
# 禁止在搜索到文件两端时重新搜索
set nowrapscan
# 输入搜索内容时就显示搜索结果
set incsearch
# 搜索时高亮显示被找到的文本
set hlsearch
# 关闭错误信息响铃
set noerrorbells
# 关闭使用可视响铃代替呼叫
set novisualbell
# 置空错误铃声的终端代码
set t_vb=
# 插入括号时,短暂地跳转到匹配的对应括号
set showmatch
# 短暂跳转到匹配括号的时间
set matchtime=2
# 设置魔术
set magic
# 允许在有未保存的修改时切换缓冲区,此时的修改由 vim 负责保存
set hidden
# 隐藏工具栏
set guioptions-=T
# 隐藏菜单栏
set guioptions-=m
# 开启新行时使用智能自动缩进
set smartindent
# 不设定在插入状态无法用退格键和 Delete 键删除回车符
set backspace=indent,eol,start
# 设定命令行的行数为 1
set cmdheight=1
# 显示状态栏 (默认值为 1, 无法显示状态栏)
set laststatus=2
# 设置在状态行显示的信息
set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\ %c:%l/%L%)\
# 开始折叠
set foldenable
# 设置语法折叠
set foldmethod=syntax
# 设置折叠区域的宽度
set foldcolumn=0
# 设置折叠层数为1
set local foldlevel=1
推荐插件
这里只推荐一个插件,主要是演示怎么使用vim-plug来安装插件,大家可以去vimawesome自己淘插件,找到以后记得评论区分享哦。
我推荐的插件是The NERD tree
,它的作用是可以显示和IDE最基本的文件结构树,比如下面的Vscode
然后使用The NERD tree
以后,在vim里面看是这样的
具体的安装方法如下
-
去插件中心-vimawesome找到The NERD tree
-
复制这一行命令
- 然后打开shell输入
vim ~/.vimrc
,对!!!又是这个配置文件,然后在里面输入
call plug#begin('~/.vim/autoload')
call plug#end()
- 然后把刚刚在vimawesome查到的命令,复制到这两者直接,变成这样
call plug#begin('~/.vim/autoload')
Plug 'scrooloose/nerdtree'
call plug#end()
- 然后切换到命令模式,输入
PlugInstall
(注意必须装vim-plug,不然提示找不到命令)
- 然后你可以在vim下按
ctrl+t
查看当前文件的所在的目录树,详细的文档vimawesome的该插件详情介绍的会比我详细很多。
至此,插件就装好啦,如果有其他的插件需求安装,与上面的步骤一直,把在vimawesome找到的命令复制到两个call里面,然后在PlugInstall就好了。
END
推荐资料
(转载本站文章请注明作者和出处 没有气的汽水)
┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐ ├ 文章已经完啦, 想要第一时间收到文章更新可以关注↓ ┤ └┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┘
Post Directory
下面是评论区,欢迎大家留言探讨或者指出错误哈