2013-04-25 67 views
1

我想重新定義:h:help命令,以便它們默認垂直分割屏幕。出於兩個原因,以下解決方案是不合需要的。Vim:重新定義:h和:幫助垂直分割

cnoremap h vert help 
cabbrev h vert help 
  1. 我只希望發生的:*命令替換。不幸的是,當我輸入/h時,替換也會發生。我通過地圖上的文檔掃描,但我找不到一個只能重新映射:*命令而不是/*命令的命令。

  2. 我只希望在命令以:h開頭時進行替換。如果我鍵入:ah,該命令將擴展爲:avert help。當我一起管理命令時,這種行爲可能是可取的,但我不想在這裏。

感謝您的幫助!

+1

我強烈建議你給肯特的答案一槍,因爲它非常簡單。如果你真的想重新定義這個命令,你可以將這個重定義僅限於':'命令(參見':h getcmdtype()')。有關如何使用此示例的示例,請參閱https://github.com/rson/vimscript-snippets/blob/master/lowercase_commands.vim。 – 2013-04-25 23:55:14

+0

@RandyMorris我實際上遇到過一篇文章,我剛剛閱讀了關於'getcmdtype()'的文章,但肯特的答案更加清晰。不幸的是,我有一個有趣的問題,我在肯特的答案下面評論了這個問題。 – 2013-04-25 23:56:23

回答

3

我會使用cmdalias.vim - Create aliases for Vim commands插件,但你也可以解決這個wi一個聰明的映射:

:cnoreabbrev <expr> h getcmdtype() == ":" && getcmdline() == "h" ? "vert h" : "h" 
+0

謝謝,這個解決方案效果很好。就個人而言,我會用'vert vertrightright'替換'vert',因爲這會在右側面板中打開幫助窗口。 – 2013-04-26 06:49:50

+0

迴應我以前的評論:其實,不,我不會建議用'vertrightright'替換'vert'。設置'set splitright'是一個好主意。 – 2013-04-26 07:32:46

2

我想重新定義:h和help命令,以便它們默認垂直分割屏幕 。

在我的vimrc,我有:

"==================== 
"Help in vertical split (right) 
"==================== 
autocmd FileType help wincmd L 

如果你想在左邊的豎劈幫助顯示,使用H代替L

+0

感謝您的回答!然而,我遇到了一個奇怪的問題。第一次嘗試時窗口垂直分開,但第二次水平分開。我將在移動我的'.vimrc'後再試一次,以防我的任何插件可能受到干擾。 – 2013-04-25 23:57:28

+0

在我的'.vimrc'文件中使用手動二進制搜索後,我在''.vimrc''中隔離了一行,導致問題:'set hidden'。 – 2013-04-26 00:01:53

+0

@你的評論中的void-pointer我看不到問題。我很久以前在vimrc中寫過的那一行,沒有你的問題... – Kent 2013-04-26 00:02:29

1

一個非常LO-高科技解決方案:

nnoremap <leader>h :vert help <-- there's a <space> here