《Vim 安装与经典配置》

《Vim 安装与经典配置》

1. 安装

Linux

sudo apt install vim # Debian/Ubuntu sudo dnf install vim # Fedora

macOS

brew install vim

验证

vim --version

2. 经典配置

Vim 的配置文件为 ~/.vimrc,下面是常用的经典配置:

" 删除模式允许退格键删除 set backspace=indent,eol,start " 使用空格代替 Tab 缩进 set expandtab set ts=4 set softtabstop=4 set shiftwidth=4 set tabstop=4 " 语法高亮 syntax on " 自动缩进 set autoindent set cindent " 文件格式化并加载对应语言的插件 filetype plugin indent on " 支持中文 set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936 set termencoding=utf-8 set encoding=utf-8 " 查找与状态栏 set cursorline set laststatus=2 set hlsearch set incsearch set showcmd set ruler set statusline=[Line:%l/%L,Column:%c][%p%%]=%F highlight StatusLine cterm=bold ctermfg=red ctermbg=gray " 选中文本后按 < 或 > 保持选中并缩进 xnoremap < <gv xnoremap > >gv " 保存时自动删除行尾多余空格 autocmd BufWritePre *.js,*.sh,*.c,*.py,*.go,*.lua,*.java,*.scala :%s/\s\+$//e

3. 常用配置项说明

配置项 作用
set nu 显示行号
set paste 粘贴时不自动缩进(粘贴代码时临时使用)
set cursorline 高亮当前行
set laststatus=2 始终显示状态栏
set noexpandtab 缩进使用 Tab 而非空格
set hlsearch 高亮搜索结果
set incsearch 输入时实时高亮匹配

4. 新建文件自动插入文件头

通过 autocmd 监听新建文件事件,根据文件类型自动写入文件头注释:

autocmd BufNewFile *.py,*.cc,*.sh,*.java exec ":call SetTitle()" func SetTitle() if &filetype == 'sh' call setline(1, "\#!/bin/bash") call setline(2, "") call setline(3, "mydir=\"\$\(dirname \"\$\(readlink -f \"\$0\"\)\"\)\"") call setline(4, "myname=\"$(basename \"$mydir\")\"") call setline(5, "cd \"$mydir\"") call setline(6, "") elseif &filetype == 'python' call setline(1, "\#coding=utf8") call setline(2, "\"\"\"") call setline(3, "\# Author: your-name") call setline(4, "\# Created Time : ".strftime("%c")) call setline(5, "") call setline(6, "\# File Name: ".expand("%")) call setline(7, "\# Description:") call setline(8, "") call setline(9, "\"\"\"") call setline(10,"") elseif &filetype == 'java' call setline(1, "//coding=utf8") call setline(2, "/*************************************************************************") call setline(3, "\ @Author: your-name") call setline(4, "\ @Created Time : ".strftime("%c")) call setline(5, "") call setline(6, "\ @File Name: ".expand("%")) call setline(7, "\ @Description:") call setline(8, "") call setline(9, " ************************************************************************/") call setline(10,"") endif endfunc

5. 相关资源

阅读 — · 全站 —
🎸 我的歌单 0 首