以下是我的 .vimrc,它主要关注 perl、mason 和 javascript IDE 功能,但您可以调整您在此处看到的 ruby/sh 细节。多年来一直通过 SSH 使用它。在 IDE 环境之外,自动备份不止一次地拯救了我。
" Embedded() is a function that will parse a text buffer
" looking for embedded vim commands, and execute them.
" Call it with a range of lines to check, eg to check the whole
" file:
"
" :%call Embedded()
"
" Commands should be prefixed by the sequence :vim: .
"
function Embedded() range
let n = a:firstline
while n <= a:lastline
let l = getline(n)
let p = stridx(l,':vim:')
if p > -1
let p = p + 5
let c = strpart(l,p)
execute c
endif
let n = n + 1
endwhile
endfunction
" call Embedded() whenever a file is loaded and
" parse the entire file. You may not want to do
" this for *; maybe just your src tree or certain
" file types or something.
autocmd BufWinEnter * %call Embedded()
" Create nested folds on custom expressions, based
" on the current buffer's filetype or syntax.
"
let g:foldlevel = 0
let g:foldstartexpr = ''
let g:foldendexpr = ''
function GetCustomFold()
if getline(v:lnum) =~ g:foldstartexpr
let g:foldlevel = g:foldlevel + 1
return ">".g:foldlevel
elseif getline(v:lnum) =~ g:foldendexpr
let thislevel = g:foldlevel
let g:foldlevel = g:foldlevel - 1
return "<".thislevel
else
return g:foldlevel
endif
endfunction
function SetFoldType()
let f = &filetype ? &filetype : &syntax
if f == 'mason'
let g:foldstartexpr = '^\s*<\(script\|style\|%init\|%attr\|%once\|%args\|%flags\|%shared\|%def\)[^>]*>\s*$'
let g:foldendexpr = '^\s*</\(script\|style\|%init\|%attr\|%once\|%args\|%flags\|%shared\|%def\)[^>]*>\s*$'
elseif f == 'perl'
let g:foldstartexpr = '^sub.*{\s*$'
let g:foldendexpr = '^}\s*$'
elseif f == 'javascript'
let g:foldstartexpr = '^function.*{\s*$'
let g:foldendexpr = '^}\s*$'
else
return
endif
setlocal foldexpr=GetCustomFold()
setlocal foldmethod=expr
endfunction
autocmd BufWinEnter * %call SetFoldType()
function SetPerlIDE()
" check perl code with :make
setlocal makeprg=perl\ -c\ %\ $*
setlocal errorformat=%f:%l:%m
setlocal autowrite
" comment/uncomment blocks of code (in vmode)
map ^C :s/^/#/gi<Enter>
map ^X :s/^#//gi<Enter>
" my perl includes pod
let perl_include_pod = 1
" syntax color complex things like @{${"foo"}}
let perl_extended_vars = 1
" Tidy selected lines (or entire file) with _t:
nnoremap <silent> _t :%!perltidy -q<Enter>
vnoremap <silent> _t :!perltidy -q<Enter>
" perlcritic selected lines (or entire file) with _p:
nnoremap <silent> _p :%!perlcritic -q<Enter>
vnoremap <silent> _p :!perlcritic -q<Enter>
endfunction
autocmd FileType perl call SetPerlIDE()
" map II :r ~/.vim/template.pod<CR>
set tabstop=4
set number
set showmatch
set ruler
set backup
set backupdir=~/.vim/backups
set directory=~/.vim/backups
set tags=~/.vim/tags
set backupskip=/tmp/*,/private/tmp/*"
" we get colors, we get lots and lots of colors
syntax on
set bg=dark
colors darkblue
* Enter the partial file name and press TAB which will fill the file name, which you can open by pressing enter,
* Enter one or two characters of the file name or the path name, and press tabs to rotate around the file names.
在新选项卡中打开 MRU 列表中的文件
默认情况下,在 MRU 条目上按 enter 将在同一窗口中打开文件。如果当前窗口中打开的文件尚未保存,它将在新窗口中打开。
* To open the file from the MRU entry in a new Tab , press ‘t’ when the cursor is on a file name in MRU window.
* :tabn will take you to the next tab
* :tabp will take you to the previous tab
我最近学到的最好的东西是使用
jj
而不是<esc>
进入正常模式:此外,如果您通过
split
(tall terminal) 或vsplit
(wide terminal) 命令使用拆分,则重新映射 switch-split 命令是非常宝贵的;我使用,
(逗号)在我的拆分之间切换:也可以在 Stack Overflow 上查看 vim的热门问题。
我基本上在我使用的每个系统上都使用以下内容。不过,我并没有真正投入太多精力来修改它。我使用 vim 作为配置编辑工具,在大量服务器上,但这些天我不倾向于在 vim 上做很多开发
nmap 选项让我可以使用 tab 和 shift-tab 在多个打开的缓冲区之间切换,我觉得这非常宝贵。
检查dakrone的dotfiles
.vimrc
中的and 。.vim
以下是我的 .vimrc,它主要关注 perl、mason 和 javascript IDE 功能,但您可以调整您在此处看到的 ruby/sh 细节。多年来一直通过 SSH 使用它。在 IDE 环境之外,自动备份不止一次地拯救了我。
如果你使用 vim,你可能会喜欢我的小工作
第 1 步:从 vim.org 下载最新版本的插件
从 vim.org 下载插件
$ cd /usr/src $ wget -O mru.vim http://www.vim.org/scripts/download_script.php?src_id=9274
第 2 步:安装 MRU vim 插件
$ mkdir ~/.vim # 如果目录不存在 $ cd ~/.vim/plugin/ $ cp /usr/src/mru.vim .
MRU.vim 的 7 个强大功能
安装此插件后,每当您打开文件进行读取或写入时,它将被添加到 MRU 列表中。1. 在 Vi/Vim 编辑器中查看最近使用的文件
:MRU
注意: :MRU(大写)有效。:mru(小写)不起作用。
:MRU 将显示“最近使用”的文件,按最近使用从上到下排序,如下所示。要打开文件,请在光标位于该文件名时按 ENTER。图:显示“最近文档”列表的 Vim 编辑器
图:显示“最近文档”列表的 Vim 编辑器
注意:安装 MRU 插件后,您可能看不到 MRU 列表中的任何文件。安装插件后使用 Vim 编辑器打开几个文件,以增加 MRU 列表。2.如何增加MRU List Count?(增加存储的文件数)
默认情况下,MRU 列表仅存储最近 10 个使用的文件。将以下行添加到您的 ~/.vimrc 以增加此限制,如下所示。
$ cat ~/.vimrc 让 MRU_Max_Entries = 20
当您增加文件数量时,可能难以滚动 MRU 列表来选择您要查找的文件。相反,您可以使用普通的 Vim 命令在 MRU 列表中进行搜索。所以你可以给出(斜杠)/并给出一个搜索模式。
在以下示例中,MRU 列表非常长。我做了一个“/yum”,它自动将光标移动到 /etc/yum.conf MRU 条目。按回车键,将打开此文件。图:使用 / 搜索 MRU 列表
图:使用 / 搜索 MRU 列表
您还可以使用 MRU 搜索功能,如下所述。
默认情况下,在 MRU 条目上按 enter 将在同一窗口中打开文件。如果当前窗口中打开的文件尚未保存,它将在新窗口中打开。
要更新当前的 MRU 窗口,请按“u”。当打开 MRU 窗口时,它总是会打开较新的内容。6. 使用 MRU_Exclude_Files 排除某些文件
要排除某些文件在 MRU 中显示,您可以将正则表达式存储在 MRU_Exclude_Files 变量中,如下所示:
$ cat ~/.vimrc 让 MRU_Exclude_Files = '^/tmp/. \|^/var/tmp/. '" 对于 Unix
以上将排除 /tmp 和 /var/tmp 存储在 MRU 中。7. 使用 MRU_Include_Files 包含某些文件
要在 MRU 中仅包含某些类型的文件,您可以将正则表达式存储在 MRU_Include_Files 变量中,如下所示。这将仅包括 /home/ramesh 中要存储在 MRU 中的文件。
$ cat ~/.vimrc 让 MRU_Include_Files = '^/home/rajat/.*'