博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vimrc配置(每次找都很麻烦)
阅读量:4110 次
发布时间:2019-05-25

本文共 5795 字,大约阅读时间需要 19 分钟。

vimrc 

"set encoding=chinese

"set langmenu=zh_CN.UTF-8"

if version >= 603

    set helplang=cn

endif

set langmenu=zh_CN.UTF-8

"set imcmdline "这一句导致字体大小、颜色设置失效

"set guifont=Monospace\ 12

set guifont=DejaVu\ Sans\ Mono\ 12 

source $VIMRUNTIME/delmenu.vim

source $VIMRUNTIME/menu.vim

"下一行为语法高亮,彩色的

syntax on


"添加自动缩进

set tabstop=4

set shiftwidth=4

set softtabstop=4

set ai "开启自动缩进

"set expandtab "自动把tab转化为空格

"retab "将已存在的tab都转化为空格

set list   "显示tab和行尾空格

set lcs=tab:+-,trail:- "显示tab为+---和行尾空格(只在输入时才显示)

"折叠python代码

"set foldmethod=indent

"let Tlist_Auto_Open=1 "auto open taglist自动打开taglist

set autoindent "自动缩进?

"添加python字典,实现自动补全(字典目录为~/.vim/pydiction,里面有字典和一个脚本),快捷键:ctrl+n(20080320 ~/.vim/tools/也可以)

if has("autocmd")

autocmd FileType python set complete+=k~/.vim/tools/pydiction

endif

"安F8智能补全

inoremap <F8> <C-x><C-o>


map <F5>:!/usr/bin/python2.5 %


set nobackup    "不自动备份

set nu      "开启行号

"搜索字高亮

set hlsearch

"取消 Vim 对 HTML 标记自动产生的缩进,但打开自动缩进选项

au FileType html setlocal autoindent indentexpr=


" multi-encoding setting

if has("multi_byte")

"set bomb

set fileencodings=ucs-bom,utf-8,cp936,big5,euc-jp,euc-kr,latin1

" CJK environment detection and corresponding setting

if v:lang =~ "^zh_CN"

    " Use cp936 to support GBK, euc-cn == gb2312

    set encoding=cp936

    set termencoding=cp936

    set fileencoding=cp936

elseif v:lang =~ "^zh_TW"

    " cp950, big5 or euc-tw

    " Are they equal to each other?

    set encoding=big5

    set termencoding=big5

    set fileencoding=big5

elseif v:lang =~ "^ko"

    " Copied from someone's dotfile, untested

    set encoding=euc-kr

    set termencoding=euc-kr

    set fileencoding=euc-kr

elseif v:lang =~ "^ja_JP"

    " Copied from someone's dotfile, untested

    set encoding=euc-jp

    set termencoding=euc-jp

    set fileencoding=euc-jp

endif

" Detect UTF-8 locale, and replace CJK setting if needed

if v:lang =~ "utf8$" || v:lang =~ "UTF-8$"

    set encoding=utf-8

    set termencoding=utf-8

    set fileencoding=utf-8

endif

else

echoerr "Sorry, this version of (g)vim was not compiled with multi_byte"

endif


*************************************

//

1.tabstop (ts-数值型): 设定文件中制表位占的空格个数,默认是8

   :set ts=4     (表示一个插入一个<Tab>占4个空格位)


2.expandtab (et-布尔型): 插入<Tab>时使用相应数量的空格,而不用制表位,默认关闭

   :set ts=10 et     (此时插入一个tab时,真正插入的是10个空格)

   注: 当'et'打开,要插入实际的制表位,需用CTRL-V<Tab>,win下加载了mswin.vim插件的用CTRL-Q<Tab>


3.softtabstop (sts-数值型): 当插入一个<Tab>时,若'ts'值大于'sts',则此时就插入'sts'值那么多空格;

   而当'ts'值小于'sts',则此时就插入几个制表位(制表位的个数是'sts'整除'ts'之商)

   和几个空格(空格的个数是'sts'整除'ts'之余数),默认是0,表示关闭

   :set ts=8 sts=6   (此时插入一个<Tab>,就会插入6个空格;若连续插入两个<Tab>,则会插入一个制表位和4个空格)

                    在此设置下这样输入: 一个<Tab>,3个空格,一个<Tab>,大家想想实际会输入什么?

   :set ts=3 sts=8   (此时插入一个<Tab>,就会插入2个制表位和2个空格)


4.retab (ret-ex下的命令,前面3个是选项): 把制表位和空格组成的连续序列替换成新的制表位或空格

   格式是   :[range]ret[!] [ts值]   (不是指定range,默认是全文;不指定'ts'值,就用原来的'ts'值)

   

   (1) 当'et'为关闭状态时,retab会尽量把由"制表位和空格组成的连续空白序列"替换成尽可能多的制表位,如:

   有一个连续"空白序列"是由: 3个空格,两个制表位,5个空格组成,这时设置如下命令

   :ret 6    (原来的"空白序列"变为由: 3个制表位,2个空格组成的新的"空白序列")

   (2) 当'et'为开启状态时,retab会把所有的制表位换成当前'ts

   (3) :ret! 命令则会把纯粹由空格组成的"空白序列"强制替换为尽可能多的制表位加空格

   注:retab命令对文本的处理,不会引起视觉上的变化


5.smarttab (sta-布尔型): 它确定行首插入<Tab>时的情况,它跟选项'shiftwidth'(sw)相关联,默认关闭.

   :set sta   (则若行首插入一个<Tab>,会根据'sw'的值来插入"空白序列",其余的地方还是插入一个制表位;

               而这里的"空白序列"是由什么组成,是由'sw','ts'值的相对大小,以及是否开启了'et'决定的.

               若'sw'小于'ts'的值,且'et'是关闭的,则行首插入一个<Tab>就直接插入'sw'值所代表的空格数;

               若'sw'大于'ts'的值,且'et'是关闭的,则行首插入一个<Tab>就插入尽可能多的制表位加空格;

               若'et'是开启的,若行首插入一个<Tab>就直接插入'sw'值所代表的空格数


   注:选项'sw'只用于normal下的左右移动命令: > , >> , < , <<


************************ 说 明 *********************************

*                                                            

* (a) 文中的<Tab>表示动作:敲击键盘上的Tab制表键(位于Q键左边), 

*     而文中的"制表位"表示前面那个动作后的输入;                

* (b) 为了便于制表位和空格的区分,也就是让它们成为"可见"模式:    

*     :set list                                              

*     :set lcs=eol:&,tab<+        

       set list   "显示tab和行尾空格

       set lcs=tab:>-,trail:- "显示tab为---和行尾空格(只在输入时才显示)                           

*     这样每行结尾有字符"&",制表位若是4,则为:<+++ ,             

*     而若制表位是8,则为:<+++++++                         

* (c) <Backspace>在插入模式下可以删除整个'sts'和'sta'下的'sw' 

*     但象normal下"x"这样的命令就只能删除真正的制表位和空格       

==========================================================================

20090123

" 自动补全命令时候使用菜单式匹配列表

set wildmenu

" 允许退格键删除

set backspace=2

" 启用鼠标

set mouse=a

" 文件类型

filetype on

filetype plugin on

filetype indent on

" 设置编码自动识别, 中文引号显示

"set fileencodings=utf-8,cp936,big5,euc-jp,euc-kr,latin1,ucs-bom

set fileencodings=utf-8,gbk,ucs-bom

set ambiwidth=double


" 移动长行

nnoremap <Down> gj

nnoremap <Up> gk


" 让编辑模式可以中文输入法下按:转到命令模式

nnoremap : :


" 高亮

syntax on

" 设置高亮搜索

set hlsearch

" 输入字符串就显示匹配点

set incsearch

" 输入的命令显示出来,看的清楚些。

set showcmd


" 打开当前目录文件列表

map <F3> :e .<CR>


" Taglist

let Tlist_File_Fold_Auto_Close=1

set updatetime=1000

map <F4> :Tlist<CR>


" 按 F8 智能补全

inoremap <F8> <C-x><C-o>


" vim 自动补全 Python 代码

" 来自http://vim.sourceforge.net/scripts/script.php?script_id=850

autocmd FileType python set complete+=k~/.vim/tools/pydiction

autocmd FileType python set shiftwidth=4 tabstop=4 "expandtab "把tab转化为空格

set list

set lcs=tab:+-,trail:-

" 自动使用新文件模板

autocmd BufNewFile *.py 0r ~/.vim/template/simple.py


autocmd FileType html set shiftwidth=4 tabstop=4 expandtab 

autocmd BufNewFile *.html 0r ~/.vim/template/simple.html


"要在命令行上实现 Emacs 风格的编辑操作: >

" 至行首

:cnoremap <C-A>        <Home>

" 后退一个字符

:cnoremap <C-B>        <Left>

" 删除光标所在的字符

:cnoremap <C-D>        <Del>

" 至行尾

:cnoremap <C-E>        <End>

" 前进一个字符

:cnoremap <C-F>        <Right>

" 取回较新的命令行

:cnoremap <C-N>        <Down>

" 取回以前 (较旧的) 命令行

:cnoremap <C-P>        <Up>

" 后退一个单词

:cnoremap <Esc><C-B>    <S-Left>

" 前进一个单词

:cnoremap <Esc><C-F>    <S-Right>


"Format the statusline

"Nice statusbar

set laststatus=2

set statusline=

set statusline+=%2*%-3.3n%0*\ " buffer number

set statusline+=%f\ " file name

set statusline+=%h%1*%m%r%w%0* " flag

set statusline+=[

if v:version >= 600

set statusline+=%{strlen(&ft)?&ft:'none'}, " filetype

set statusline+=%{&encoding}, " encoding

endif

set statusline+=%{&fileformat}] " file format

if filereadable(expand("$VIM/vimfiles/plugin/vimbuddy.vim"))

set statusline+=\ %{VimBuddy()} " vim buddy

endif

set statusline+=%= " right align

"set statusline+=%2*0x%-8B\ " current char

set statusline+=0x%-8B\ " current char

set statusline+=%-14.(%l,%c%V%)\ %<%P " offset

转载地址:http://edosi.baihongyu.com/

你可能感兴趣的文章
序列化与自定义序列化
查看>>
ThreadLocal
查看>>
从Executor接口设计看设计模式之最少知识法则
查看>>
OKhttp之Call接口
查看>>
application/x-www-form-urlencoded、multipart/form-data、text/plain
查看>>
关于Content-Length
查看>>
WebRequest post读取源码
查看>>
使用TcpClient可避免HttpWebRequest的常见错误
查看>>
EntityFramework 学习之一 —— 模型概述与环境搭建 .
查看>>
C# 发HTTP请求
查看>>
初试visual studio2012的新型数据库LocalDB
查看>>
启动 LocalDB 和连接到 LocalDB
查看>>
Palindrome Number --回文整数
查看>>
Reverse Integer--反转整数
查看>>
Container With Most Water --装最多水的容器(重)
查看>>
Longest Common Prefix -最长公共前缀
查看>>
Letter Combinations of a Phone Number
查看>>
Single Number II --出现一次的数(重)
查看>>
Valid Parentheses --括号匹配
查看>>
Generate Parentheses--生成匹配括号(重)
查看>>