写于:2017-02-03		最近一次更新:2018-03-09

一般配置:

~/.vimrc 文件内容如下: set nocompatible "不兼容vi,启用vim新特性 set backspace=indent,eol,start "正常使用backspace键删除字符和缩进 set nobackup "禁止生成file~这样的备份文件 set noundofile "禁止生成.file.un~这样的文件。vim的undofile文 "件可以让你在关闭文件后再次打开时还可以撤销上次的更改 "set noswapfile "禁止生成临时文件,建议保持默认开启,因为.file.swp文 "件可以防止编辑过程中系统意外关断造成的修改内容丢失 "当编辑完成正常保存后.file.swp文件会自动消失 set ignorecase smartcase "搜索文本内容时忽略大小写,但当输入的关键字中 "有一个及一个以上大写字母时仍保持对大小写敏感 "set nowrapscan "禁止在搜索到文件末尾时重新从开头处搜索,建议保持默认开启 set nowrap "禁止折行,即不管这一行内容有多长,只在一行内显示, "向右移动光标可以看到未显示的部分 set nonumber "不显示行号 set laststatus=2 "为2时表示总是显示状态行 set statusline=%-(%<\ %F\ %{&fileformat}\ %{&encoding}\ %l/%L%) " 设置要在状态行显示的信息 " 高亮显示当前行/列 "set cursorline "set cursorcolumn set nohlsearch " 禁止高亮显示搜索结果 "set hlsearch " 高亮显示搜索结果 filetype off " 关闭文件类型侦测 "filetype plugin on " 根据侦测到的不同类型加载对应的插件 "filetype indent on " 自适应不同语言的智能缩进 syntax enable " 开启语法高亮功能 "syntax on " 允许用指定语法高亮配色方案替换默认方案 "set tabstop=2 " 设置Tab键缩进的空格数 "set shiftwidth=2 " 设置将多少个空格视为一个缩进 if !has("gui_running") set mouse=v "设置适用于终端模式下vim的参数 else set mouse=a "设置适用于图形界面下gvim的参数 endif

Intent:

经常要在编辑模式下编辑完内容后切到一般模式下执行命令及其他操作, 但在编辑模式下经常会用到中文输入法,而退到一般模式下时输入法还在 中文状态下,不便于接下来的操作,我想在vim退出到普通模式的同时关闭输入法

Oneway:

直接在输入法中设置关闭输入法的快捷键为Escape+KeyRelease即可 不需要其他的插件

Intent:

新建文件时,自动或者手动快速加入头部注释信息,如作者邮箱,脚本用途,注意事项等

Oneway:

在 ~/.vimrc 中加入如下代码即可 "SET MyComment START autocmd BufNewFile *.sh,*.cpp,*.js exec ":call SetMyComment()" | normal 7Go func SetMyComment() if expand("%:e") == 'sh' call setline(1, '#!/bin/bash') elseif expand("%:e") == 'cpp' call setline(1, '//C++ source file') elseif expand("%:e") == 'js' call setline(1, '//JavaScript source file') else call setline(1, '') endif call append(1, '#***************************************************') call append(2, '# Author: sman@mnxnm.com') call append(3, '# Description: 说明') call append(4, '# Create: '.strftime("%Y-%m-%d %H:%M:%S")) call append(5, '# Last Modified: '.strftime("%Y-%m-%d %H:%M:%S")) call append(6, '#***************************************************') endfunc map <F2> :call SetMyComment()<CR>:7<CR>o "SET MyComment END "SET Last Modified Time START func LastModifiedTime() call cursor(6,1) if search ('Last Modified') != 0 let line = line('.') call setline(line, '# Last Modified: '.strftime("%Y-%m-%d %H:%M:%S")) endif endfunc autocmd FileWritePre,BufWritePre *.sh,*.cpp,*.js ks|call LastModifiedTime() |'s "SET Last Modified Time END