`
jywhltj
  • 浏览: 46916 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

我的 vimrc(Windows、UNIX 通用版)

    博客分类:
  • vim
阅读更多

这份 vimrc 是修改 Windows 版 gVim 默认创建的 vimrc 而来,未做高级定制,修改/添加的代码主要做以下几件事:

1、兼容 Windows、Unix,GUI 版一致采用 Windows 操作习惯。

2、设置内码为 UTF-8,但设置默认文件编码为 GBK,并协调 GUI、终端等各处编码设置。

3、配置编码识别规则,除了简繁体、Unicode 识别外,还增加了对于 7bit ASCII 升级为 GBK 而不是 UTF-8 的处理。

4、编码相关的字体及字符宽度设置。 

 

这套配置支持 Windows vim7.3/UNIX vim7.0 及以上版本的 vim。建议编译最新版,相比旧版更加完善和稳定。

Windows 版需要 iconv 支持,要在 Vim 目录或系统搜索路径中有 iconv.dll。

UNIX 上编译一定要记得开启 multibyte 支持,推荐./configure --with-features=huge

 或者./configure --with-features=big 并确认 configure 输出中没有 iconv 异常。

 

还可参考本文按照自己需求定制:

  • 如果想默认创建 UTF-8 文件而不是 GBK 编码的,只需去掉 set fenc=gbk 即可。
  • 如果对于 7bit ASCII 想提升为 UTF-8 而不是 GBK,那么去掉 g:usasc 相关处理即可。
  • 对于 fencs 最末的 8bit 编码,一般人可能更倾向于用 latin1 或 windows-1252 而不是 cp437,可替换之。
" 前几十行主要来自 gVim Windows 版默认 vimrc,有改动
set nocompatible
source $VIMRUNTIME/vimrc_example.vim
if has('gui_running') || has ('win32')
	source $VIMRUNTIME/mswin.vim
	behave mswin
endif

set diffexpr=MyDiff()
function MyDiff()
  let opt = '-a --binary '
  if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
  if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
  let arg1 = v:fname_in
  if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
  let arg2 = v:fname_new
  if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
  let arg3 = v:fname_out
  if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
  let eq = ''
  if has('win32')
    if $VIMRUNTIME =~ ' '
      if &sh =~ '\<cmd'
        let cmd = '""' . $VIMRUNTIME . '\diff"'
        let eq = '"'
      else
        let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
      endif
    else
      let cmd = $VIMRUNTIME . '\diff'
    endif
  else
    let cmd = 'diff'
  endif
  silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
endfunction

" 以下为灰蓝天际添加

let g:usasc = 'us-ascii'

" 编码识别列表,主要是用来自动识别不同中文编码的文本
let &fencs= g:usasc . ',ucs-bom,utf-8,gbk,gb18030,utf-16le,utf-16,big5,cp437'

" 当前语言环境
if $LC_ALL != ''
	let $lc_msgs_ = $LC_ALL
elseif $LC_MESSAGES != ''
	let $lc_msgs_ = $LC_MESSAGES
elseif $LANG != ''
	let $lc_msgs_ = $LANG
endif

" 设定界面语言
if has('win32') || has('gui_running')
	let $LANGUAGE = 'zh_CN.UTF-8'
elseif $LANGUAGE == ''
	let $LANGUAGE = $lc_msgs_
endif

" 使用 UTF-8 中文编码
let $LANG = 'zh_CN.UTF-8'
if has('win32')
	language chs
else
	language zh_CN.UTF-8
endif
set enc=utf8
if has('win32') || $lc_msgs_ == 'zh_CN.GBK'
	set tenc=gbk
endif

set ambiwidth=double

if has('gui')
	set langmenu=zh_CN.UTF-8
	source $VIMRUNTIME/delmenu.vim
	source $VIMRUNTIME/menu.vim
endif

set fenc=gbk

" 字体设置,OEM 编码用特殊字体
if has('gui')
	if has('win32')
		let g:oemfont = 'Courier New:h10:w5'
		let g:usrfont = ''

		let &gfw = 'NSimSun:h11'
	else
		let g:oemfont = 'unifont 12'
		let g:usrfont = 'Monospace 12'
	endif

	let &gfn = g:usrfont
endif

" 将 US-ASCII 升级为 GBK 编码,而不是 UTF-8
" 检测并设置 OEM 字体及宽度
function ChkEnc()
	if &fenc == g:usasc && v:cmdarg == ''
		e ++enc=gbk
		if exists(':sy')
			sy on
		endif
	endif
	if has('gui')
		if &fenc == 'cp437' || &fenc == '437'
			let &gfn = g:oemfont
			let &ambw = 'single'
		else
			let &gfn = g:usrfont
			let &ambw = 'double'
		endif
	endif
endfunction

au BufReadPost * call ChkEnc()

" 避免不能从终端复制文本
if !has('gui_running')
	set mouse=
endif
分享到:
评论

相关推荐

    GVIM vimrc windows配置

    **GVIM Vimrc Windows配置详解** 在编程世界中,VIM(Vi IMproved)是一款备受推崇的文本编辑器,尤其受到程序员和系统管理员的喜爱。GVIM是VIM的一个图形界面版本,适合在Windows环境中使用。VIM的强大在于其高度...

    windows下gvim配置_vimrc

    在Windows环境下,GVIM(Gnu Vi IMproved)是一款强大的文本编辑器,它是Vim的图形界面版本。GVIM提供了与命令行版本Vim相似的功能,但用户可以通过鼠标和其他图形界面特性进行交互。`_vimrc`文件是GVIM的初始化配置...

    windows下常用的_vimrc配置

    windows下常用的_vimrc配置,成功设置中文字体 guifontwide=NSimSun:h18 "新宋体

    我vimrc配置文件

    我的vimrc配置文件,配置了常用的一些插件,如winmanager,taglist和lookupfiles等

    vimrc

    在Vim的世界里,`vimrc`(有时也写作`.vimrc`)是一个文本文件,位于用户的主目录下,通常名为`~/.vimrc`或`_vimrc`(Windows系统)。这个文件包含了Vim启动时执行的一系列命令和设定,如快捷键映射、插件配置、颜色...

    .vimrc配置文件

    这里的`win32`, `win64`, 和 `win32unix`分别代表Windows 32位、Windows 64位和Unix下的Windows模拟环境。根据检测结果,变量`g:isWin`会被赋值为1或0,用于后续针对不同平台的条件配置。 #### 常用格式配置 - **...

    vimrc文件vimrc文件

    1. 文件位置:在Unix/Linux系统中,vimrc通常位于`~/.vimrc`或`~/.config/vim/vimrc`,而在Windows系统下,可能位于`%USERPROFILE%\_vimrc`或`%USERPROFILE%\AppData\Local\Vim\vimrc`。 2. 配置语法:vimrc文件...

    vim 配置文件 vimrc

    `vimrc`文件通常位于用户的家目录下,如`~/.vimrc`(在Unix/Linux系统中)或`%USERPROFILE%\_vimrc`(在Windows系统中)。它由一系列的命令行指令组成,每行代表一个设置或配置项。例如,你可以通过`set number`来...

    我正在使用的_vimrc文件、字体和配色方案

    首先,`.vimrc`文件是Vim的配置文件,它位于用户的主目录下(在Windows系统中通常是`%USERPROFILE%`),用于定义Vim的各种设置、快捷键映射和插件配置。例如,用户可能通过`.vimrc`来启用自动缩进、设置语法高亮、...

    vimrc vim配置方案 vim配置 vim配色 vim配色方案

    `vimrc`文件位于用户的主目录下,通常为`~/.vimrc`(在Unix/Linux系统中)或`$HOME/_vimrc`(在Windows系统中)。这个文件包含了启动Vim时会执行的命令,用于设置快捷键、颜色、行为等。例如,以下是一些常见的`...

    vim-真实使用要改成.vimrc隐藏文件

    mv vimrc .vimrc

    gvim7.3(Windows)的配置文件_vimrc

    gvim7.3(Windows)的配置文件_vimrc(替换原文件) 在windows环境变量里配置: 1、变量名:VIMRUNTIME 变量值:C:\Program Files\Vim\vim73(vim的安装目录) 2、变量名:VIMFILES 变量值:C:\Program Files\Vim\...

    经典的vimrc配置文件

    `vimrc`文件就是vim的配置文件,它允许用户根据自己的需求定制编辑器的行为,提高工作效率。本资源提供的是三个不同版本的`vimrc`配置文件,适用于不同场景和需求。 首先,让我们来看看`版本2-vimrc.Learn1-equal-...

    vim插件和配置信息vimrc

    1. **基本设置**:例如,设置编码格式(`set fileencoding=utf-8`)、行号显示(`set number`)和换行符类型(`set fileformat=unix`)。 2. **快捷键映射**:你可以定义自己的快捷键,如映射`F9`来保存当前文件(`...

    .vimrc.rar

    `.vimrc`文件是Vim的配置文件,它允许用户自定义编辑器的行为以适应个人的工作习惯。本资源针对CentOS8系统,目标是将Vim8配置成一个功能丰富的代码浏览和编辑工具,类似于Source Insight。 首先,让我们详细了解...

    vimrc 配置

    **vimrc配置详解** 在Linux世界中,Vim(Vi Improved)是一款强大的文本编辑器,深受程序员和系统管理员的喜爱。为了使Vim更加符合个人习惯和提高工作效率,我们可以自定义其配置文件——`vimrc`。`vimrc`是Vim的...

    配置文件vimrc

    配置文件vimrc.vimrc

    vimrc-win:Windows上的vimrc(golang-dev等)

    【vimrc-win:Windows上的vimrc(golang-dev等)】是一个专为Windows用户设计的Vim配置文件,主要用于优化Go语言的开发环境。Vimrc文件是Vim编辑器的初始化脚本,它定义了Vim启动时的默认设置、快捷键映射以及插件...

    vimrc的配置文件

    vimrc的配置文件,对应博客“linux服务器中安装vimrc的一二三”中的内容

    vimrc vim 配置文件

    `vimrc` 文件和 `.vim` 目录就是 Vim 自定义配置的核心部分。 `.vimrc` 文件,全称是 `vim runtime configuration`,是Vim启动时读取的配置脚本,用于设置编辑器的行为、快捷键映射、插件设置等。通过编辑这个文件...

Global site tag (gtag.js) - Google Analytics