侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

Vim 基本配置

2023-11-05 星期日 / 0 评论 / 0 点赞 / 29 阅读 / 6350 字

Vim是个强大的编辑器,在各种插件的辅助下甚至也能匹敌IDE,但也不能过分的依赖来各种插件,而忘记来Vim原本的功能与操作。Vim本身的功能很强大,学习曲线很曲折,需要我们慢慢的来学习,多多的使用。V

Vim是个强大的编辑器,在各种插件的辅助下甚至也能匹敌IDE,但也不能过分的依赖来各种插件,而忘记来Vim原本的功能与操作。Vim本身的功能很强大,学习曲线很曲折,需要我们慢慢的来学习,多多的使用。Vim自身有很多配置选项,可以在~/.vimrc中配置,从而方便我们操作。使用Vim也有一段时间来,也有了一套自己习惯好用的配置,下面列出我的基本配置。

General

一些基本配置

syntax on                       " 关键字上色syntax enable                   " 语法高亮set nu                          " 显示行号set nocp                        " 不兼容viset hidden                      " 允许不保存切换bufferset splitright                  " 新分割窗口在右边set splitbelow                  " 新分割窗口在下边set autoread                    " 文件在Vim之外修改过,自动重新读入set timeoutlen=350              " 等待时间,如<leader>键后的输入set helpheight=999              " 查看帮助文档全屏set scrolljump=3                " 当光标离开屏幕滑动行数set scrolloff=1                 " 保持在光标上下最少行数set showmatch                   " 短暂回显匹配括号
set hlsearch                    " 检索时高亮显示匹配项set incsearch                   " 边输入边搜索set ignorecase                  " 搜索忽略大小写set smartcase                   " 智能大小写搜索set wildmenu                    " 命令模式下补全以菜单形式显示set wildmode=list:longest,full  " 命令模式补全模式set foldenable                  " 启动折叠set foldmethod=marker           " 设置折叠模式set encoding=utf-8              " 编码,使汉语正常显示set termencoding=utf-8set fileencodings=utf-8,gb2312,gbk,gb18030

还有相关的编码问题可以参考VIM文件编码识别与乱码处理。

Formatting

关于缩进

set expandtab                   " tab=空格set tabstop=4                   " tab缩进4个空格set shiftwidth=4                " 自动缩进空格数set softtabstop=4               " 退格删除缩进set backspace=indent,start      " 退格可删除缩进和原有字符set autoindent                  " 与前一行同样等级缩进

当切割窗口显示多文件时,如果窗口大小改变,本来分布均匀的窗口不会重新调整大小,变得很难看,可以添加下面这条来配置自动调整大小。

au VimResized * exe "normal! /<c-w>="

在粘贴时候,如果前边的行带有注释符号,如#//"等时,后边的行会自动加上注释符号,很是麻烦,下面可以配置不自动添加成注释。

au BufReadPost * if line("'/"") > 0|if line("'/"") <= line("$")|exe("norm '/"")|else|exe "no rm $"|endif|endifautocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o

Key (re)Mappings

一些按键的重映射,很多用了真是让人上瘾,而且便捷很多,如<Esc>jj来代替,还有一些常输错的一些命令的修正,如QW等。

let mapleader=","           " 映射<leader>键到为,nmap j gjnmap k gkinoremap jj <ESC>nnoremap <silent> J :bp<CR>nnoremap <silent> K :bn<CR>noremap <silent><space> :set hls! hls?<CR>noremap <silent><Leader>s :set rnu! rnu?<CR>noremap <silent><Leader>l :set list! list?<CR>nnoremap <Leader>c @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR>" 更方便窗口间移动nnoremap <C-h> <C-w>hnnoremap <C-j> <C-w>jnnoremap <C-k> <C-w>knnoremap <C-l> <C-w>l" 命令模式按键映射cnoremap <C-a> <Home>cnoremap <C-e> <End>cnoremap <C-p> <Up>cnoremap <C-n> <Down>" Tab操作nnoremap <Leader>tc :tabc<CR>nnoremap <Leader>tn :tabn<CR>nnoremap <Leader>tp :tabp<CR>nnoremap <Leader>te :tabe<Space>" 修正易错命令command -bang -nargs=* Q q<bang>command -bang -nargs=* Wa wa<bang>command -bang -nargs=* WA wa<bang>command -bang -nargs=* -complete=file W w<bang> <args>command -bang -nargs=* -complete=file Wq wq<bang> <args>command -bang -nargs=* -complete=file WQ wq<bang> <args>

Vim UI

因为我主要在终端使用Vim,所以一些UI的配置是针对终端的。GUI的话基本相似,把ctermbg等换成guibg等就可以了。

set t_Co=256                    " 终端显示256色set tabpagemax=15               " 最多15个Tabset showmode                    " 显示当前modeset cursorline                  " 高亮当前行set list                        " 显示特殊符号set listchars=tab:›/ ,trail:•,extends:#,nbsp:.hi clear SignColumn             " 标记列背景和主题背景匹配hi clear LineNr                 " 当前行列背景和主题背景匹配hi CursorLineNr ctermfg=redhi VertSplit ctermbg=Grey ctermfg=Grey cterm=nonehi Visual ctermbg=81 ctermfg=black cterm=nonehi Comment ctermfg=bluehi Statement ctermfg=cyanhi DiffAdd ctermbg=blue ctermfg=whitehi DiffDelete ctermbg=green ctermfg=nonehi DiffChange ctermbg=red ctermfg=Whitehi DiffText ctermbg=yellow ctermfg=blackif has('cmdline_info')    set showcmd                 " 右下角显示当前操作    set ruler                   " 右下角显示状态说明    set rulerformat=%30(%=/:b%n%y%m%r%w/ %l,%c%V/ %P%) " 设定格式endifif has('statusline')    set laststatus=1    set statusline=%<%f/                     " Filename    set statusline+=%w%h%m%r                 " Options    set statusline+=/ [%{&ff}/%Y]            " Filetype    set statusline+=/ [%{getcwd()}]          " Current dir    set statusline+=%=%-14.(%l,%c%V%)/ %p%%  " Right aligned file nav infoendif

广告 广告

评论区