Vim插件管理配置:编辑器标配功能

玩 Vim 必须要玩插件,而玩 Vim 插件,需要管理插件的插件。Vim 插件千千万,管理 Vim 插件的插件也不少(数据更新于 2023/09):

插件Github Star上次更新说明
Vundle23.6k3 weeks ago
Pathogen12klast year
VimPlug7k2 weeks ago
Dein3.4klast week以不再积极维护,它推荐 Dpp
VAM6597 months ago
apt-vim4775 years ago
Jetpack2913 months ago
VimPackager2412 years ago
Volt2363 years ago
Dpp692 days ago
Vimogen373 years ago
Voom27last year
packer.nvim7k3 weeks ago官宣停止维护,推荐 lazy 和 pckr,但都是 for nvim
lazy.nvim7k2 weeks agofor nvim
pckr.nvim109this weekfor nvim

我选择 Vundle,别的也没用过…

安装 Vundle

参考 Vundle - Quick Start 安装和配置 Vundle。

安装(就是 git clone)

bash
复制代码
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

初始 ~/.vimrc

默认应该是没有 ~/.vimrc 的,新建一个,内容如下(根据 Vundle 文档改的):

vimrc
复制代码
set nocompatible              " be iMproved, required
filetype off                  " required

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Install plugins, supported formats:
" 
" - Plugin on GitHub repo, e.g. `Plugin 'tpope/vim-fugitive'`
" - Plugin from http://vim-scripts.org/vim/scripts.html, e.g. `Plugin 'L9'`
" - Plugin hosted on other Git repos, e.g. `Plugin 'git://git.wincent.com/command-t.git'`
" - Your local git repos (i.e. your own plugin), e.g. `Plugin 'file:///path/to/plugin'`
" - The sparkup vim script is in a subdirectory of this repo called vim, pass the path to set the runtimepath properly, e.g. `Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}`
" - Install L9 and avoid a Naming conflict if you've already installed a different version somewhere else, e.g. `Plugin 'ascenator/L9', {'name': 'newL9'}`
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" 💥 插件安装

" All of your Plugins must be added before the following line
call vundle#end()            " required
filetype plugin indent on    " required
" To ignore plugin indent changes, instead use: `filetype plugin on`
" 
" Brief help
" :PluginList       - lists configured plugins
" :PluginInstall    - installs plugins; append `!` to update or just :PluginUpdate
" :PluginSearch foo - searches for foo; append `!` to refresh local cache
" :PluginClean      - confirms removal of unused plugins; append `!` to auto-approve removal
"
" see :h vundle for more details or wiki for FAQ
" Put your non-Plugin stuff after this line

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Common Settings
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" 💥 通用设置

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Plugin Settings
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" 💥 插件设置

注意,Vundle 不会自动安装插件,需要在添加插件记录后,重启 Vim,执行 :PluginInstall 以完成安装。

稍安勿躁

先不急着装插件。

以上,.vimrc 中我留了三大块,用 💥 做了标记。

先 Vim 打开一个 TS 文件,效果是这样的:

来调配一些基本设置,技巧是,先在 Command-Line mode 下执行命令看效果,然后将敲过的命令记录到 .vimrc 的「通用设置」部分。

编辑器标配功能

对于一个「代码编辑器」来说,少了些标配:

  • 显示行号,敲命令 :set number
  • 语法高亮,敲命令 :syntax on:syntax enable 亦可),报错的话先执行 set regexpengine=2
  • 当前行高亮,敲命令 :set cursorline

效果看起来差不多了,如果你对高亮行的效果不满意(一根线,不明显),这是 colorscheme default 的效果,可以改一个,在命令模式下敲 :colorscheme wildcharm

可用的主题有 bluedarkbluedefaultdelekdesertelflordeveninghabamaxindustrykoehlerlunaperchemorningmurphypablopeachpuffquietretroboxronshineslatesorbettortewildcharmzaibatsuzellner

如果你不觉得 colorscheme default 也不错,可以改一下高亮当前行的颜色 :hi CursorLine cterm=NONE ctermbg=black

基本上达到满意的效果了,.vimrc 「通用设置」下添加以下汇总的设置:

vimrc
复制代码
" --- Color Scheme
colorscheme wildcharm                       " The default colorscheme shows only a bottom line

" --- Editor Basic
set regexpengine=2                          " Prevent error `redrawtime exceeded` for syntax highlight
syntax on                                   " Syntax highlight, also make NERDTree render properly
set number                                  " Show line number in the gutter
set cursorline                              " Highlight current line
" hi CursorLine cterm=NONE ctermbg=black      " If you realy like default colorscheme
set wrap                                    " Wrap words visually
set linebreak                               " wrap only at the 'breakat' option

空白字符和缩进

自出道以来,我一直是 Tab 党,在阿里期间,被活活转成双 Space,因此现在我是一个双 Space 的内心 Tab 党。

但有一点我从来没变,就是我从来都特别鄙视 Tab 和 Space 混用的人,凡是看到这样的代码,我都会去看一下是谁的杰作,并且非常武断地做出判断:此人「码品」和「码能」不行。

为了避免自己成为被别人嘲讽的对象,我的所有编辑器 / IDE 必须做的设置就是空白字符可见。

比如有这么一段代码,在我的 WebStorm 和仅做了之前的设置的 Vim 下的展示效果:

WebStormVim
image.png

Vim 下的 Tab 还有特别的副作用,最左侧的 Tab 处无法向左移动光标。

第一步:真 Tab 宽度

「真」Tab 默认 8 个字符宽,还是 4 个看起来舒服,敲命令 :set tabstop=4

此时,代码「看着」缩进都正确,在没有 Linter 的情况下,完全无法用肉眼看出任何问题。

第二步:显示空白字符

敲命令 :set list

仅展示了 Tab(^I)和回车($),空格看不到,继续敲命令 set listchars=tab:»-⋮,space:·,eol:¶

解释一下:

  • tab 可以两种格式,xyx 永远展示,y 作填充,如 »- 可能展示为 »»-»--»--- 等等;xyzz 永远展示,y 作填充,x 作头,如 »-⋮ 可能展示为 -⋮»-⋮»--⋮»---⋮ 等等
  • space 所有的空格展示,仅允许一个字符,包括行首、中间和行尾
  • eol 行末回车,仅允许一个字符,默认为 $,Eclipse 默认为 ,WebStorm 和 VSCode 下没有

具体可以 :h listchars 查看。

  • tab 推荐 »-⋮»»⋮--⋮▷▷⋮▷-⋮>-»-
  • space 推荐 ·
  • eol 推荐 ↩︎¬

可自行组合以满足自己的特殊癖好。

第三步:Tab 换空格

现在按 Tab 键还是真 Tab,敲命令 :set expandtab,发现按 Tab 变成了 4 个空格(tabstop 的值),但我需要 2 个空格,敲命令 :set softtabstop=2

第四步:自动缩进

敲代码怎么能没有自动缩进呢,敲命令 :set smartindent,会自动缩进了,但空格个数不对,继续 :set shiftwidth=2

set smartindentset autoindent 要好用一些。

.vimrc 「通用设置」下添加以下汇总的设置:

vimrc
复制代码
" --- Tab & Space
set list                                    " Make invisible chars visible
set listchars=tab:»-⋮,space:·,eol:¶         " How invisible chars are displayed
set expandtab                               " Press Tab key will generate spaces according to tabstop setting
set tabstop=4                               " Real tab width
set softtabstop=2                           " How many spaces will expand from tab
set smartindent                             " Ease editing code by smart auto indenting
set shiftwidth=2                            " How many spaces for auto indent

至此,编辑器的 Tab、空格、缩进等调校完毕。

光标形状

按照之前的步骤操作过的话,你应该已经在 Normal mode、Command-Line mode、Insert mode 间相互切换过了,你或许发现,Normal mode 和 Insert mode 的光标是一样的。

获取你更希望 Insert mode 的光标是一条竖线,能够更明确地知道插在哪里。

这个没法在命令行预览,在 .vimrc 「通用设置」下添加以下设置(先别急着试):

vimrc
复制代码
" --- Cursor shape
let &t_SI.='\e[5 q'               " SI = INSERT mode → blinking vertical bar
let &t_SR.='\e[4 q'               " SR = REPLACE mode → solid underscore
let &t_EI.='\e[1 q'               " EI = NORMAL mode (ELSE) → blinking block

好消息是,这可能奏效,坏消息是,需要 为不同的平台做不同的设置

有人更建议,Normal mode 不高亮,Insert mode 高亮,敲命令 :set cursorline!autocmd InsertEnter,InsertLeave * set cursorline!

个人认为这个形式更舒服,修改「Basic UI」设置:

vimrc
复制代码
" --- Basic UI
set regexpengine=2                          " Prevent error `redrawtime exceeded` for syntax highlight
syntax on                                   " Syntax highlight, also make NERDTree render properly
set number                                  " Show line number in the gutter
" set cursorline                              " Highlight current line
colorscheme wildcharm                       " The default colorscheme shows only a bottom line
" hi CursorLine cterm=NONE ctermbg=black    " If you need default colorscheme

autocmd InsertEnter,InsertLeave * set cursorline!

调校搜索

vimrc
复制代码
" --- Searching
set smartcase                               " When searching try to be smart about cases
set incsearch                               " Makes search act like search in modern browsers
set lazyredraw                              " Don't redraw while executing macros (good performance config)
set magic                                   " For regular expressions turn magic on
set hlsearch                                " Highlights all search hits

其他必要设置

vimrc
复制代码
" --- Window settings
set splitbelow                              " Open split windows below
set splitright                              " Open split windows to the right

" --- Misc
set history=77                              " How many command history vim should remember
set pastetoggle=<F5>                        " Toggle paste mode

这里给大家分享一份Python全套学习资料,包括学习路线、软件、源码、视频、面试题等等,都是我自己学习时整理的,希望可以对正在学习或者想要学习Python的朋友有帮助!

CSDN大礼包:全网最全《全套Python学习资料》免费分享🎁

😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓

👉CSDN大礼包🎁:全网最全《Python学习资料》免费分享(安全链接,放心点击)👈

1️⃣零基础入门

① 学习路线

对于从来没有接触过Python的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

② 路线对应学习视频

还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~在这里插入图片描述

③练习题

每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
在这里插入图片描述
因篇幅有限,仅展示部分资料

2️⃣国内外Python书籍、文档

① 文档和书籍资料

在这里插入图片描述

3️⃣Python工具包+项目源码合集

①Python工具包

学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
在这里插入图片描述

②Python实战案例

光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
在这里插入图片描述

③Python小游戏源码

如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
在这里插入图片描述

4️⃣Python面试题

我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述

5️⃣Python兼职渠道

而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。
在这里插入图片描述
在这里插入图片描述
上述所有资料 ⚡️ ,朋友们如果有需要 📦《全套Python学习资料》的,可以扫描下方二维码免费领取 🆓
😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓

👉CSDN大礼包🎁:全网最全《Python学习资料》免费分享(安全链接,放心点击)👈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值