Vim ctags:我们可以在taglist窗口和源代码窗口之间切换焦点而无需关闭taglist窗口吗?

时间:2016-01-19 11:33:56

标签: vim ctags taglist

我在linux上使用带有vim的ctags。

只要在任何标签上按Enter键,焦点就转到源代码窗口,为了重新关注标记列表窗口,我必须:TlistToggle两次(变量'Tlist_GainFocus_On_ToggleOpen' set to 1 ) - 基本上关闭标签列表窗口并再次以获得的焦点打开它。

我很好奇我们是否可以在标记列表窗口和源窗口之间切换焦点而不关闭标记列表窗口?

2 个答案:

答案 0 :(得分:2)

:help window

...给出了关于Vim窗口的章节,

:help window-move-cursor

...是您正在寻找的子章节:

4. Moving cursor to other windows           *window-move-cursor*

CTRL-W <Down>                   *CTRL-W_<Down>*
CTRL-W CTRL-J                   *CTRL-W_CTRL-J* *CTRL-W_j*
CTRL-W j    Move cursor to Nth window below current one.  Uses the cursor
        position to select between alternatives.

CTRL-W <Up>                 *CTRL-W_<Up>*
CTRL-W CTRL-K                   *CTRL-W_CTRL-K* *CTRL-W_k*
CTRL-W k    Move cursor to Nth window above current one.  Uses the cursor
        position to select between alternatives.

CTRL-W <Left>                   *CTRL-W_<Left>*
CTRL-W CTRL-H                   *CTRL-W_CTRL-H*
CTRL-W <BS>                 *CTRL-W_<BS>* *CTRL-W_h*
CTRL-W h    Move cursor to Nth window left of current one.  Uses the
        cursor position to select between alternatives.

CTRL-W <Right>                  *CTRL-W_<Right>*
CTRL-W CTRL-L                   *CTRL-W_CTRL-L* *CTRL-W_l*
CTRL-W l    Move cursor to Nth window right of current one.  Uses the
        cursor position to select between alternatives.

CTRL-W w                    *CTRL-W_w* *CTRL-W_CTRL-W*
CTRL-W CTRL-W   Without count: move cursor to window below/right of the
        current one.  If there is no window below or right, go to
        top-left window.
        With count: go to Nth window (windows are numbered from
        top-left to bottom-right).  To obtain the window number see
        |bufwinnr()| and |winnr()|.  When N is larger than the number
        of windows go to the last window.

                        *CTRL-W_W*
CTRL-W W    Without count: move cursor to window above/left of current
        one.  If there is no window above or left, go to bottom-right
        window.  With count: go to Nth window, like with CTRL-W w.

CTRL-W t                    *CTRL-W_t* *CTRL-W_CTRL-T*
CTRL-W CTRL-T   Move cursor to top-left window.

CTRL-W b                    *CTRL-W_b* *CTRL-W_CTRL-B*
CTRL-W CTRL-B   Move cursor to bottom-right window.

CTRL-W p                    *CTRL-W_p* *CTRL-W_CTRL-P*
CTRL-W CTRL-P   Go to previous (last accessed) window.

                        *CTRL-W_P* *E441*
CTRL-W P    Go to preview window.  When there is no preview window this is
        an error.
        {not available when compiled without the |+quickfix| feature}

If Visual mode is active and the new window is not for the same buffer, the
Visual mode is ended.  If the window is on the same buffer, the cursor
position is set to keep the same Visual area selected.

                        *:winc* *:wincmd*
These commands can also be executed with ":wincmd":

:[count]winc[md] {arg}
        Like executing CTRL-W [count] {arg}.  Example: >
            :wincmd j
<       Moves to the window below the current one.
        This command is useful when a Normal mode cannot be used (for
        the |CursorHold| autocommand event).  Or when a Normal mode
        command is inconvenient.
        The count can also be a window number.  Example: >
            :exe nr . "wincmd w"
<       This goes to window "nr".

话虽这么说,通过启用鼠标支持(set mouse=a),您只需左键单击您想要光标的位置(并拖动窗口边框,然后......)

答案 1 :(得分:1)

这不是TlistOpen的目的吗?

否则,如果标记列表窗口具有可识别的名称,则可以使用update_app提取窗口编号,并使用version跳转到该窗口编号。您可能需要使用get_app

之类的内容搜索正确的缓冲区