我已经开始使用Vim开发Perl脚本,并开始发现它非常强大.
我喜欢的一件事是能够一次打开多个文件,vi main.pl maintenance.pl
然后在它们之间跳转:
:n
:prev
Run Code Online (Sandbox Code Playgroud)
并查看打开的文件
:args
Run Code Online (Sandbox Code Playgroud)
要添加文件,我可以说:
:n test.pl
Run Code Online (Sandbox Code Playgroud)
我希望将其添加到我的文件列表中,但它会清除我当前的文件列表,当我输入时:args
我只test.pl
打开了.
那么我怎样才能将文件添加到我的args列表中并将其删除?
我在Unix模式下使用Vim for windows.感谢这个网站,我现在使用gf
命令转到光标下的文件.
我正在寻找一个命令:
gf
以在新窗口中自动启动新文件.我目前正在开发一个标准的 Windows 桌面应用程序(标准意味着没有花哨的东西:只有按钮、文本、滑块等),并且在研究了一些 GUI 框架并被排斥后决定自己编写一个 GUI 框架他们都。由于这是一个业余项目,我也愿意尝试,并决定使 GUI 立即模式,而不是保留模式,因为我非常喜欢它简化代码的方式。不过,这里有一个问题:
当将即时模式 GUI 用于典型桌面应用程序时,与保留模式 GUI 相比,使用即时模式 GUI 对性能有何影响?
我总是听说 IMGUI 的性能更差,因为它必须重绘每一帧(或者,如果它以某种方式缓存,它仍然必须每帧都执行逻辑)。但我们在这里谈论的还有多少?我是不是消耗了两倍的 CPU 时间?更多的?如果我假设运行 20 个 IMGUI 程序,它会最大限度地使用 CPU(假设我已经对其进行了优化)?我只是想知道大概情况以及权衡在非游戏环境中是否仍然可行,在这种环境中无需重新绘制每一帧。
还有一个我不明白的关于延迟的含义。在章讨论IMGUI的工作正在进行书由约翰内斯Norneby,解释如下:
框架剪切
在实时应用程序的上下文中需要注意的 IMGUI 的一个方面(每秒不断渲染新帧多次)是用户交互将始终响应在前一帧上绘制的内容。这是因为用户界面必须至少绘制一次,以便用户知道那里有要与之交互的小部件。大多数情况下,如果帧速率足够高,这不会导致任何问题,但这是需要注意的。
这在保留模式 GUI 中有何不同?这是否意味着我在保留模式的 GUI 上多了一个输入延迟帧?
c++ performance user-interface desktop-application immediate-mode
Vim %
操作符跳转到匹配的括号,注释结束和其他一些东西.但是,它并不符合XML标记(或任何其他标记,据我所知).
使用Vim跳转到匹配的XML标记的最佳方法是什么?
注意: 我真正想要做的是复制XML文件中的一个部分,而无需手动查找匹配的标记.
当我搜索时
/\vSEARCHTERM
Run Code Online (Sandbox Code Playgroud)
Vim从光标位置向下开始搜索,它将环绕到顶部.但是在搜索和替换时使用
:%s/\vBEFORE/AFTER/gc
Run Code Online (Sandbox Code Playgroud)
Vim从文件的顶部开始.
有没有办法让Vim从光标位置开始搜索和替换,一旦到达终点就会回到顶部?
我正在使用Ctrl- ]在Vim中使用Ctags进行导航.如果有多个匹配项,如何导航到备用文件?
防爆.something.publish
在包含多次出现的代码库中publish
:
class Foo
def publish
end
end
class Bar
def publish
end
end
Run Code Online (Sandbox Code Playgroud) 说我有以下几行:
thing();
getStuff();
Run Code Online (Sandbox Code Playgroud)
我想getStuff()
使用yy,继续前进thing()
,将光标放在上面(
然后点击p,但是因为我猛拉了整条线,所以p将它粘贴到getStuff()
原来的位置.
我知道你可以^D得到那条线getStuff()
然后p会做我想要的.但是,我觉得这比单调乏味得多yy.
有没有什么方法可以yy粘贴内联线?
我知道我可以:q
使用在Vim中打开最后一个closed()文件:e#
.这将在当前选项卡中打开该文件.如何执行相同的任务,但在新的Vim选项卡中打开文件.此外,我感兴趣的是如何以新的分割而不是当前选项卡打开文件.
在Vim中,如果我有代码如(在Ruby中):
anArray << [anElement]
Run Code Online (Sandbox Code Playgroud)
我的光标在第一[
,我可以跳到]
与%
钥匙,我可以删除之间的所有内容[]
对用d%
什么,但如果我只是想删除[
,并]
留下两个之间的所有剩余内容.换句话说,最快捷的方式是什么:
anArray << anElement
Run Code Online (Sandbox Code Playgroud) 我想知道这个常见的IDE功能是否可用.
假设我使用Vim打开许多文件,使用vsplit
和split
.然后,我关闭一切.
第二天,我想要恢复这些文件.也就是说,恢复它们打开的方式,而不必再打开每个(使用split
和vsplit
).
那可能吗?
更新:
使用mksession!
和source
命令,在.vimrc
文件中映射命令,有没有办法参数化映射,以便编写特定的文件?
例如:
map <F2> :mksession! ~/vim_session @INSERT_HERE<cr> "Save session to @INSERTHERE file
Run Code Online (Sandbox Code Playgroud)
提前致谢