如何直接跳到Vim中的列号


234

有时出于调试目的,我不得不做一些令人激动的工作,以精简JavaScript代码。线宽达600列。异常报告库足够友好,可以以行号和列号的形式向我提供确切的崩溃坐标。但是,即使我可以如此轻松地跳到该行,我也找不到直接跳到该列号的方法。

我该怎么做?


听起来这是一种需要发明的工具。“缩小我的js的大小,当您使用它时,跳转到此列号标识的位置。”
dnellis74 '16

2
@ dnellis74该工具存在。这就是所谓的“ sourcemaps”;)
Burgi,

//,@Burgi,可以隐藏3个单词的摘要和链接吗?
内森·巴桑尼斯

Answers:


333

|命令将执行您想要的操作,因为该命令30|会将您带到第30列。

                                                        bar
|                       To screen column [count] in the current line.
                        exclusive motion.  Ceci n'est pas une pipe.

http://vimdoc.sourceforge.net/htmldoc/motion.html#bar


41
请注意,对于一般用途,这是屏幕列,而不是实际列。这意味着<Tab>字符将获得不同的结果。如果这些字符会在那里,你反而会想|30lh|29l029l或类似的东西。
克里斯·摩根

25
您也可以在各种运动命令之前传递数字,例如,50h将向左移动50个字符。
2012年

7
:set nowrap还可帮助减少屏幕行和文件行之间的混淆。
大卫·波普

4
@DavidPope:请注意,在这种情况下,“屏幕列”表示它仍相对于行的开头。g0实现“当前屏幕行的开始”。
克里斯·摩根

10
vim文档很有趣:“ Ceci n'est pas une pipe” :-)
Avinash Meetoo 2014年

45

您可以使用该cursor功能。例如,要跳至第15行的第25列,可以使用:call cursor(15,25)


2
这确实给出了问题的答案,并且使用Ex命令替代脚本很方便。请注意,如果行号为零,则光标将停留在当前行中。
盖尔斯·加丹

这对于从其他工具打开Vim尤其有用,因为可以在命令行上完成此调用:"+call cursor($LINE,$COLUMN)"
Laurence Gonsalves

5

在Mac OS上对我有用的替代答案是使用将光标移到右侧(即l)的命令。因此,如果光标在第一列上,并且您想要将光标放在当前行的第50列上,请使用以下命令:

49l
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.