我常用的Vim插件和技巧
-
- 帖子: 19
- 注册时间: 2005-10-24 17:42
- 来自: 长沙
- kofshower
- 帖子: 1343
- 注册时间: 2007-03-13 11:23
- 联系:
代码: 全选
插 入 补 全 弹 出 菜 单 *ins-completion-menu*
*popupmenu-completion*
Vim 可以用更简单的弹出菜单来显示匹配。
当下面条件符合时使用弹出菜单:
- 'completeopt' 选项包含 "menu" 或 "menuone"。
- 显示终端至少支持 8 色。
- 至少有两条匹配项。如果使用 "menuone",一条匹配也可以。
选项 'pumheight' 用于设置最大高度。默认值是使用全部有效空间。
有三个状态:
1. 插入了完整的匹配,例如在 CTRL-N 或 CTRL-P 之后。
2. 用光标键选择其它匹配项。此时不插入该匹配项,只在弹出菜单中高亮选中的条目。
3. 只插入了部分匹配文本,并且已经输入字符或者使用了退格键,这时匹配项列表根据
光标前的内容进行调整。
开始时你通常处于状态一并插入第一个匹配。如果 'completeopt' 包含了 "longest" 而
且有多个匹配项,那么开始于状态三。
如果选择其它匹配项,例如键入 CTRL-N 或 CTRL-P,就进入了状态一。这不会改变匹配
项列表。
如果退回到原文,就会处于状态三。要立即进入该状态,可以使用快捷键映射方法,该映
射在补全开始后立即使用 CTRL-P:
:imap <F7> <C-N><C-P>
明白了:
代码: 全选
menu Use a popup menu to show the possible completions. The
menu is only shown when there is more than one match and
sufficient colors are available. |ins-completion-menu|
menuone Use the popup menu also when there is only one match.
Useful when there is additional information about the
match, e.g., what file it comes from.
上次由 kofshower 在 2008-07-20 16:55,总共编辑 1 次。
"We are all in the mud, but some of us are looking at the stars." (Oscar Wilde)
We are not born for ourselves.
人生天地间,并非为自己
Homepage:http://sites.google.com/site/polarisnotme/
We are not born for ourselves.
人生天地间,并非为自己
Homepage:http://sites.google.com/site/polarisnotme/
- kofshower
- 帖子: 1343
- 注册时间: 2007-03-13 11:23
- 联系:
代码: 全选
学到一个技巧
我改了下我的
" mapping
" 如果下拉菜单弹出,回车映射为接受当前所选项目,否则,仍映射为回车;
"
" 如果下拉菜单弹出,CTRL-J映射为在下拉菜单中向下翻页。否则映射为CTRL-X CTRL-O;
"
" 如果下拉菜单弹出,CTRL-K映射为在下拉菜单中向上翻页,否则仍映射为CTRL-K;
"
" 如果下拉菜单弹出,CTRL-U映射为CTRL-E,即停止补全,否则,仍映射为CTRL-U;
inoremap <expr> <CR> pumvisible()?"\<C-Y>":"\<CR>"
inoremap <expr> <C-J> pumvisible()?"\<PageDown>\<C-N>\<C-P>":"\<C-X><C-O>"
inoremap <expr> <C-K> pumvisible()?"\<PageUp>\<C-P>\<C-N>":"\<C-K>"
inoremap <expr> <C-U> pumvisible()?"\<C-E>":"\<C-U>"a
inoremap <expr> <cr> pumvisible() ? "\<c-y>" : "\<c-g>u\<cr>"
inoremap <expr> <c-n> pumvisible() ? "\<c-n>" : "\<c-n>\<c-r>=pumvisible() ? \"\\<down>\" : \"\\<cr>\""
inoremap <expr> <m-;> pumvisible() ? "\<c-n>" : "\<c-x>\<c-o>\<c-n>\<c-p>\<c-r>=pumvisible() ? \"\\<down>\" : \"\\<cr>\""
"We are all in the mud, but some of us are looking at the stars." (Oscar Wilde)
We are not born for ourselves.
人生天地间,并非为自己
Homepage:http://sites.google.com/site/polarisnotme/
We are not born for ourselves.
人生天地间,并非为自己
Homepage:http://sites.google.com/site/polarisnotme/
- kofshower
- 帖子: 1343
- 注册时间: 2007-03-13 11:23
- 联系:
这是针对java的codesnip
代码: 全选
if !exists('loaded_snippet') || &cp
finish
endif
function! UpFirst()
return substitute(@z,'.','\u&','')
endfunction
function! JavaTestFileName(type)
let filepath = expand('%:p')
let filepath = substitute(filepath, '/','.','g')
let filepath = substitute(filepath, '^.\(:\\\)\?','','')
let filepath = substitute(filepath, '\','.','g')
let filepath = substitute(filepath, ' ','','g')
let filepath = substitute(filepath, '.*test.','','')
if a:type == 1
let filepath = substitute(filepath, '.[A-Za-z]*.java','','g')
elseif a:type == 2
let filepath = substitute(filepath, 'Tests.java','','')
elseif a:type == 3
let filepath = substitute(filepath, '.*\.\([A-Za-z]*\).java','\1','g')
elseif a:type == 4
let filepath = substitute(filepath, 'Tests.java','','')
let filepath = substitute(filepath, '.*\.\([A-Za-z]*\).java','\1','g')
elseif a:type == 5
let filepath = substitute(filepath, 'Tests.java','','')
let filepath = substitute(filepath, '.*\.\([A-Za-z]*\).java','\1','g')
let filepath = substitute(filepath, '.','\l&','')
endif
return filepath
endfunction
let st = g:snip_start_tag
let et = g:snip_end_tag
let cd = g:snip_elem_delim
exec "Snippet method // {{{ ".st."method".et."<CR>/**<CR> * ".st.et."<CR> */<CR>public ".st."return".et." ".st."method".et."() {<CR>".st.et."}<CR>// }}}<CR>".st.et.""
exec "Snippet jps private static final ".st."string".et." ".st.et." = \"".st.et."\";<CR>".st.et.""
exec "Snippet jtc try {<CR>".st.et."<CR>} catch (".st.et." e) {<CR>".st.et."<CR>} finally {<CR>".st.et."<CR>}<CR>".st.et.""
exec "Snippet jlog /** Logger for this class and subclasses. */<CR><CR>protected final Log log = LogFactory.getLog(getClass());<CR>".st.et.""
exec "Snippet jpv private ".st."string".et." ".st.et.";<CR><CR>".st.et.""
exec "Snippet bean // {{{ set".st."fieldName:UpFirst()".et."<CR>/**<CR> * Setter for ".st."fieldName".et.".<CR> * @param new".st."fieldName:UpFirst()".et." new value for ".st."fieldName".et."<CR> */<CR>public void set".st."fieldName:UpFirst()".et."(".st."String".et." new".st."fieldName:UpFirst()".et.") {<CR>".st."fieldName".et." = new".st."fieldName:UpFirst()".et.";<CR>}<CR>// }}}<CR><CR>// {{{ get".st."fieldName:UpFirst()".et."<CR>/**<CR> * Getter for ".st."fieldName".et.".<CR> * @return ".st."fieldName".et." */<CR>public ".st."String".et." get".st."fieldName:UpFirst()".et."() {<CR>return ".st."fieldName".et.";<CR>}<CR>// }}}<CR>".st.et.""
exec "Snippet jwh while (".st.et.") { // ".st.et."<CR><CR>".st.et."<CR><CR>}<CR>".st.et.""
exec "Snippet sout System.out.println(\"".st.et."\");".st.et.""
exec "Snippet jtest package ".st."j:JavaTestFileName(1)".et."<CR><CR>import junit.framework.TestCase;<CR>import ".st."j:JavaTestFileName(2)".et.";<CR><CR>/**<CR> * ".st."j:JavaTestFileName(3)".et."<CR> *<CR> * @author ".st.et."<CR> * @since ".st.et."<CR> */<CR>public class ".st."j:JavaTestFileName(3)".et." extends TestCase {<CR><CR>private ".st."j:JavaTestFileName(4)".et." ".st."j:JavaTestFileName(5)".et.";<CR><CR>public ".st."j:JavaTestFileName(4)".et." get".st."j:JavaTestFileName(4)".et."() { return this.".st."j:JavaTestFileName(5)".et."; }<CR>public void set".st."j:JavaTestFileName(4)".et."(".st."j:JavaTestFileName(4)".et." ".st."j:JavaTestFileName(5)".et.") { this.".st."j:JavaTestFileName(5)".et." = ".st."j:JavaTestFileName(5)".et."; }<CR><CR>public void test".st.et."() {<CR>".st.et."<CR>}<CR>}<CR>".st.et.""
exec "Snippet jif if (".st.et.") { // ".st.et."<CR>".st.et."<CR>}<CR>".st.et.""
exec "Snippet jelse if (".st.et.") { // ".st.et."<CR><CR>".st.et."<CR><CR>} else { // ".st.et."<CR>".st.et."<CR>}<CR>".st.et.""
exec "Snippet jpm /**<CR> * ".st.et."<CR> *<CR> * @param ".st.et." ".st.et."<CR> * ".st.":D('@return')".et." ".st.et."<CR> */<CR>private ".st."void".et." ".st.et."(".st."String".et." ".st.et.") {<CR><CR>".st.et."<CR><CR>}<CR>".st.et.""
exec "Snippet main public main static void main(String[] ars) {<CR>".st."\"System.exit(0)\"".et.";<CR>}<CR>".st.et.""
exec "Snippet jpum /**<CR> * ".st.et."<CR> *<CR> * @param ".st.et." ".st.et."<CR> *".st.":D('@return')".et." ".st.et."<CR> */<CR>public ".st."void".et." ".st.et."(".st."String".et." ".st.et.") {<CR><CR>".st.et."<CR><CR>}<CR>".st.et.""
exec "Snippet jcout <c:out value=\"${".st.et."}\" />".st.et.""
"We are all in the mud, but some of us are looking at the stars." (Oscar Wilde)
We are not born for ourselves.
人生天地间,并非为自己
Homepage:http://sites.google.com/site/polarisnotme/
We are not born for ourselves.
人生天地间,并非为自己
Homepage:http://sites.google.com/site/polarisnotme/
-
- 帖子: 31
- 注册时间: 2008-09-30 7:28
Re: 我常用的Vim插件和技巧
snippest 也太不友好了。定义麻烦。
其他插件好多了。
其他插件好多了。
-
- 帖子: 133
- 注册时间: 2008-09-18 20:15
Re:
有几个问题请教一下:anticlockwise 写了:不懂你指的make管用否是指什么?我装了Latex-Suite后在命令模式下敲make照样会调用make;在Latex状态下敲入make会调用latex,不过我基本不这么用,因为直接按\ll就可以调用latex来编译当前文件,然后我自己定义了几个命令来生成PDF文件ciclo 写了:楼主的latex-suit里:make管用吗?
怎么自定义几个命令生成PDF?分享一下OK ?
如何自定义vim的快捷键?比如将<F1>设定成自动编译以代替\ll而不是探出帮助?
-
- 帖子: 154
- 注册时间: 2008-10-28 17:17
Re: 我常用的Vim插件和技巧
请问一下,怎么才能让vtreeexplorer直接在左边显示阿?
- anticlockwise
- 帖子: 2394
- 注册时间: 2007-03-01 20:46
- 来自: 湖南长沙
Re: Re:
首先,我用的是LatexSuite vim插件,按\ll就可以编译latex,编译之后,我自己定义了几个命令来生成PS或者PDF(有一个缺陷,必须和DVI在同一目录底下)iheartpp 写了:有几个问题请教一下:anticlockwise 写了:不懂你指的make管用否是指什么?我装了Latex-Suite后在命令模式下敲make照样会调用make;在Latex状态下敲入make会调用latex,不过我基本不这么用,因为直接按\ll就可以调用latex来编译当前文件,然后我自己定义了几个命令来生成PDF文件ciclo 写了:楼主的latex-suit里:make管用吗?
怎么自定义几个命令生成PDF?分享一下OK ?
如何自定义vim的快捷键?比如将<F1>设定成自动编译以代替\ll而不是探出帮助?
代码: 全选
command DviPdf :! dvipdfmx %:r.dvi
command DviPs :! dvips %:r.dvi
command PsPdf :! ps2pdf %:r.ps
- anticlockwise
- 帖子: 2394
- 注册时间: 2007-03-01 20:46
- 来自: 湖南长沙
Re: 我常用的Vim插件和技巧
敲入:VSTreeExplorelaoli_no1 写了:请问一下,怎么才能让vtreeexplorer直接在左边显示阿?
-
- 帖子: 2
- 注册时间: 2010-12-01 21:24
Re: 我常用的Vim插件和技巧
anticlockwise, 问个问题,为什么我用编译命令的时候提示UTF8不能映射字符??
- 我就是我2
- 帖子: 1215
- 注册时间: 2008-12-13 10:55
- 来自: the Earth
- 联系:
Re: 我常用的Vim插件和技巧
以后有用,先收藏
苏东坡问佛印道:“人人皆念观世音菩萨,观世音菩萨念谁?”
佛印答道:“念观世音菩萨。”
苏东坡诧异:“为何亦念观世音菩萨?”
曰:“求人不如求己。”
自然灋則
dropbox 誰好奇,誰來點
勞碌一生又如何,虛度一生又如何,你過得開心嗎?人活著就要開心嘛!
佛印答道:“念观世音菩萨。”
苏东坡诧异:“为何亦念观世音菩萨?”
曰:“求人不如求己。”
自然灋則
dropbox 誰好奇,誰來點
勞碌一生又如何,虛度一生又如何,你過得開心嗎?人活著就要開心嘛!
- sevenzero
- 帖子: 10
- 注册时间: 2009-04-16 23:29
- 系统: XUbuntu 12.04
Re: 我常用的Vim插件和技巧
学习啦.