你用什么Vim的function和扩展? 你会推荐一个Linux系统pipe理员?
这可能不是普遍的意见,但我使用香草vim。 我没有使用任何特殊的function(语法高亮和行号除外),但是它非常棒,因为我可以去任何一台Unix机器,并且可以随时随地使用它们正在运行的任何vi。
我觉得vim对于系统pipe理员来说是无处不在的,你可以马上开始使用它。 这就是为什么我select不定制我的vim。
这就是说,这里是一个小的.vimrc,我倾向于复制:
set background=dark syntax on set showmatch set ruler set softtabstop=4 set sw=4 set tabstop=4 set expandtab set autoindent set pastetoggle=<F8>
标签的东西,只是因为我使用Python很多,空白在那里重要=)
我从O'Reilly读了一本关于vim(学习vi编辑器)的书,这就是我所需要的。 我一直使用的一些东西,我一直使用
1)存储macros。 点击'q'键,然后点击要绑定的键,然后执行命令,再次点击'q'。 然后,如果你点击“@key”,它将执行该命令。 如果你点击“@@”,它会执行最后一个命令。 我喜欢这个“连接其他所有行”,你的macros是'^ Jj'(到行首,join行,移到下一行)。 然后,做'@ j'(j是我的macros键)。 然后,按住“@”键。 它会join下一个的每一行,下移,再做一次,等等。
2)分割窗户。 input':sp'(水平分割)或':vsp'(垂直分割)。 它会分裂窗口。 然后,您可以使用Ctrl + w [hjkl]在窗口之间移动,分别向右,向下,向上或向左移动。 ZZ或:退出closures窗口。 :e打开另一个文件。 特别适用于差异(垂直分割)或其他任何(复制/粘贴的简单)。
3)如果你的代码,折叠是太棒了。 折叠,基本上,closures或打开标记之间的部分。 确定标记可以手动完成,通过正则expression式,通过…任何。 谷歌“折叠vim”,你应该得到一些很好的教程。
如果我没有在特定的服务器上有一个.vimrc文件,那么下面是我手动设置的一些选项:
set ic set sc set incsearch
其中提供:
将文本粘贴到带有自动缩进function的vim中时,粘贴字符中的任何前导空格可能导致格式问题,文本缩进级别随着每行而增加。 在这种情况下,只需发出以下命令:
set paste
文本格式不再受缩进问题的影响。
发出一个set nopaste将禁用此模式。
视觉模式也是非常有用的,允许select可以被抽出,删除,转换等的文本块。
要进入逐行视觉模式,请按shift + v ,标准上/下移动键将select文本行。
要进入字符明智的视觉模式,点击ctrl + v和左/右/上/下移动键将允许人们select文本块。
我使用的另一个常见function:select文本,然后按gq将其格式化为78个字符的行。 当我使用“Its All Text”Firefox插件编辑Wiki文章时,这一点特别有用。
如果我们正在谈论的function,你不能超越search的容易和replace:s/../.../[g] 。 当然,了解正则expression式对于充分利用这个特性是绝对必要的。
如果你用任何规律编码,使用'#'键查找string的前一个实例的能力是一个巨大的节省时间。
每个人都说,他们避免使用.vimrc,因为他们总是在不同的服务器上。 我从来没有在没有安装wget的服务器上。 把你的.vimrc放在github上,就像这样简单:
wget -O ~/.vimrc http://github.com/lucasoman/Conf/raw/master/.vimrc
这就是说:set number来打开行号和:syntax on允许突出显示会使vim更加友好。 另外,学习文本对象 。
我发现vim中的选项卡相当有用。 标签中的新文件通过tabe打开,标签之间的导航是使用tabprev和tabnext完成的。 您可以将以下行添加到.vimrc,以便能够使用alt +箭头键在选项卡之间导航
map <silent><A-Right> :tabnext <CR> map <silent><A-Left> :tabprev <CR>
您可以在这里find更多有关选项卡的信息:www.linux.com/archive/articles/59533
au FileType c set foldmethod=indent au FileType c map <F5> :w<CR>:!make<CR> au FileType c map! <F5> <ESC>:w<CR>:!make<CR>
因为我的工作站是Mac,所以我几乎已经切换到了TextMate,而且我的大部分“pipe理”都是用Ruby编程基础设施。
但是,在login服务器时,我仍然使用Vim。 我使用了几个插件来让我的生活更轻松。
我使用我们CTO共享的Vimconfiguration,还有一些我自己的修改(主要是禁用hlsearch,更改colorscheme)。
这两个命令将记住您在系统上打开的每个文件的详细信息。 除此之外,它还将保存您存储在Vim“寄存器”(基本上是剪贴板)中的任何数据。
" Reopen files where we left off if has("autocmd") au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") \| exe "normal! g'\"" | endif endif " Remember for 100 files: (also save every register with <1000 lines), but not for files in /mnt or /media. Save to ~/.viminfo set viminfo='100,s1000,r/mnt,r/media,n~/.viminfo
我尽量不使用任何特定于vim的选项,因为我仍然偶然发现只有vi的系统。 唯一的例外是Ctrl + V用于“逐列”文本操作。
这就是说…要执行当前文件(而不是缓冲区),你只需要:
:!%
运行缓冲区到解释器的标准input(不先保存到文件):
:w !/bin/sh
也可以与python,perl -w等一起使用
一个非常有用的技术是通过外部命令过滤缓冲区:
1G!Ggrep -v unwanted_regex
(从其他vi问题复制我的答案)。
我靠这个命令生活和呼吸:
:se nowrap
当代码包装到下一行时,它变得难以理解和不可理解 – 更不用说哪一行是混乱的。
在vim的所有function中,这是我唯一真正想从vi中获得的东西。
我是TextPad的前用户,并记住了许多程序的加速键。 我在Vim做的第一件事就是学习map函数来保持一致性(F5search,F8replace等)。 我创build了我的个人色彩scheme,并从别人的vimrc文件中借用了很多。 Viva Vim! 可configuration到任何程度。