vi 命令行相当于 CTRL-]?

发布于 2024-08-16 06:45:41 字数 217 浏览 2 评论 0原文

我正在尝试在 vi 中映射我自己的快捷方式。 我希望能够打开一个分割窗口,其中包含我正在调用快捷方式的函数的声明。 我的 vimrc 中是这样的:

nmap; <沉默>tg :exe 'vsplit'\|相当于

但在命令模式下相当于 C-] 的是什么?

I'm trying to map my own shortcuts in vi.
I want to be able to open a splitted window containing the declaration of the function I'm calling the shortcut on.
something like this in my vimrc:

nmap <unique> <silent> <Leader>tg :exe 'vsplit'\| equivalent of <C-]>

but what's the equivalent of C-] in command mode ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

屌丝范 2024-08-23 06:45:41

要在包含标签 foobar 的行打开 vim,请在 shell 命令行中键入:

vim -t foobar

要在 vim 命令行上跳转到同一标签,请键入:

:tag foobar

如果要拆分窗口并跳转到新窗口在 vim 的命令行中输入:

:stag foobar

如果您想要指定“光标下的单词”的击键,则根据 这个问题,可以使用 CTRL+R CTRL+W 得到:

:tag CTRL+ R CTRL+W

您还可以使用:

:nmap <leader>w :tag <c-r>=expand("<cword>")<c-r>

现在输入 +w (在我的设置中是 \,所以我按 \w) 与输入 :tag

To open vim at the line containing the tag foobar type this at the shell commandline:

vim -t foobar

To jump to the same tag on the vim commandline type:

:tag foobar

If you want to split the window and jump to the tag in the new window type this in vim's commandline:

:stag foobar

If you want a keystroke that specifies "the word under the cursor", then according to this question, you can use the CTRL+R CTRL+W to get that:

:tag CTRL+R CTRL+W

You can also use :

:nmap <leader>w :tag <c-r>=expand("<cword>")<c-r>

Now typing <leader>+w (which is \ in my setup, so I'd press \w) will be the same as typing :tag <word under the cursor>

掩饰不了的爱 2024-08-23 06:45:41

请参阅:帮助 CTRL-]:

CTRL-] 跳转到定义
光标下的关键字。与相同
":tag {ident}",其中 {ident} 是
光标下方或之后的关键字。

编辑

不确定是否有内置的,但以下内容似乎与光标“下方或之后”的关键字匹配:

matchstr(getline('.'), '\%'.col('.').'c\s*\zs\k\+')

See :help CTRL-]:

CTRL-] Jump to the definition of the
keyword under the cursor. Same as
":tag {ident}", where {ident} is the
keyword under or after cursor.

Edit

Not sure if there is a built-in for this, but the following seems to match the keyword "under or after" the cursor:

matchstr(getline('.'), '\%'.col('.').'c\s*\zs\k\+')
撑一把青伞 2024-08-23 06:45:41

您还可以编写(例如将其映射到 Ctrl-Q):

:nmap <C-Q> <C-]>

在这种情况下您还可以考虑 :nn[oremap] 以避免嵌套/递归映射。

you could also write (to map it for example to Ctrl-Q):

:nmap <C-Q> <C-]>

you could also consider :nn[oremap] in such cases to avoid nested/recursive mappings.

揽月 2024-08-23 06:45:41

您可以使用 exe "tag " 跳转到光标下单词的定义。展开(“”)。 Expand 函数用其含义替换特殊标记 - 这包括光标下的文件名、当前文件名等。有关完整集,请参阅 Vim 的 Expand() 函数帮助。

或者,您可以使用 :normal 命令,它允许您从 :ex 命令执行正常模式按键序列。

You can jump to the definition of the word under the cursor with exe "tag " . expand("<cword>"). The expand function replaces special tokens with their meaning - this includes a filename under the cursor, the current file name, etc. See Vim's help for the expand() function for the full set.

Alternatively you could use the :normal command, which lets you execute normal-mode key sequences from an :ex command.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文