【问题标题】:Open NERDTree and Tlist above each other in Vim在 Vim 中打开 NERDTree 和 Tlist
【发布时间】:2011-11-17 19:28:31
【问题描述】:

我正在寻找一种方法来(自动)在左侧直接打开 NERDTree 和 Tlist,以便每个插件占据屏幕高度的一半。我已经找到this question,其中 Mohammed 的答案正是我正在寻找的。但是,我想知道是否有更直接的方法。

【问题讨论】:

  • @lucapette 是的,当然它有点重复。但是这个问题没有得到令人满意的答案,并且在几个月内没有看到任何活动。那么,除了将其扩展到一个新问题之外,我将如何重新激活该问题呢?

标签: vim nerdtree tlist


【解决方案1】:

这是一个需要对“taglist.vim”脚本进行少量编辑的解决方案。我还没有弄清楚所有潜在的后果,但到目前为止它似乎运作良好。修改 'taglist.vim' 中的 'Tlist_Window_Create' 函数以包含此处显示的 elseif 语句:

...
" Create a new window. If user prefers a horizontal window, then open
" a horizontally split window. Otherwise open a vertically split
" window
if g:Tlist_Use_Horiz_Window
    " Open a horizontally split window
    let win_dir = 'botright'
    " Horizontal window height
    let win_size = g:Tlist_WinHeight
elseif g:Tlist_Use_Split_Window
    " Open the window in a horizontal split  of current window
    let win_dir = 'abo'
    let win_size = g:Tlist_WinWidth
else
...

我从最新的 TagList (v4.5) 的第 1290 行开始插入它。 然后将以下内容添加到您的 .vimrc

let Tlist_Use_Split_Window = 1
com TT NERDTree | TlistToggle

现在:TT 命令在单个垂直窗口中打开NERDTree 上方的TagList。因为它并没有完全分裂一半,但它很接近。如果您更喜欢顶部的树,请将上面的 abo 更改为 split

【讨论】:

  • 另外,您定义的 TT 并没有完全切换 NERDTree - 理想情况下,使用 TT 任何一种方式都应该打开它们,然后关闭它们。
  • @Adam 看起来如果您在定义 TT 时使用 NERDTreeToggle 而不是 NERDTree,它将适当地关闭 NERDTree。但是,这仅在您对 win_dir 使用 'abo' 时才有效。如果你使用'split',taglist 会抱怨窗口没有打开并打开一个新窗口,这会搞砸(但如果你使用'split',窗口会被中途分割)。我在 TT 定义之后定义的是 noremap <S-Space> :TT<CR><C-w>= - 这会在显示或隐藏时平等地调整所有窗口的大小,但通常这就是我想要的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多