小编ib.*_*ib.的帖子

如何在Vim中有效地处理多个文件?

我已经开始使用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列表中并将其删除?

vi vim

1074
推荐指数
19
解决办法
56万
查看次数

你怎么从Vim的'gf'回来

我在Unix模式下使用Vim for windows.感谢这个网站,我现在使用gf命令转到光标下的文件.

我正在寻找一个命令:

  1. 返回上一个文件(类似于Ctrl+ T表示ctags),或
  2. 重新映射gf 以在新窗口中自动启动新文件.

vim editor

178
推荐指数
8
解决办法
5万
查看次数

与保留模式 GUI 相比,使用立即模式 GUI 对性能有何影响?

我目前正在开发一个标准的 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

156
推荐指数
1
解决办法
4万
查看次数

跳转到Vim中匹配的XML标记

Vim %操作符跳转到匹配的括号,注释结束和其他一些东西.但是,它并不符合XML标记(或任何其他标记,据我所知).

使用Vim跳转到匹配的XML标记的最佳方法是什么?

注意:真正想要做的是复制XML文件中的一个部分,而无需手动查找匹配的标记.

xml vim

138
推荐指数
4
解决办法
3万
查看次数

Vim:全局搜索和替换,从光标位置开始

当我搜索时

/\vSEARCHTERM
Run Code Online (Sandbox Code Playgroud)

Vim从光标位置向下开始搜索,它将环绕到顶部.但是在搜索和替换时使用

:%s/\vBEFORE/AFTER/gc
Run Code Online (Sandbox Code Playgroud)

Vim从文件的顶部开始.

有没有办法让Vim从光标位置开始搜索和替换,一旦到达终点就会回到顶部?

vim search replace

109
推荐指数
4
解决办法
5万
查看次数

如何在Vim中导航多个ctags匹配?

我正在使用Ctrl- ]在Vim中使用Ctags进行导航.如果有多个匹配项,如何导航到备用文件?

防爆.something.publish在包含多次出现的代码库中publish:

class Foo
  def publish
  end
end

class Bar
  def publish
  end
end
Run Code Online (Sandbox Code Playgroud)

vim ctags exuberant-ctags

53
推荐指数
3
解决办法
2万
查看次数

Vim yank line然后将其粘贴到内联中

说我有以下几行:

thing();
getStuff();
Run Code Online (Sandbox Code Playgroud)

我想getStuff()使用yy,继续前进thing(),将光标放在上面(然后点击p,但是因为我猛拉了整条线,所以p将它粘贴到getStuff()原来的位置.

我知道你可以^D得到那条线getStuff()然后p会做我想要的.但是,我觉得这比单调乏味得多yy.

有没有什么方法可以yy粘贴内联线

vim

51
推荐指数
4
解决办法
2万
查看次数

在Vim的新选项卡中打开上一个已关闭的文件

我知道我可以:q使用在Vim中打开最后一个closed()文件:e#.这将在当前选项卡中打开该文件.如何执行相同的任务,但在新的Vim选项卡中打开文件.此外,我感兴趣的是如何以新的分割而不是当前选项卡打开文件.

linux vi vim macvim

51
推荐指数
2
解决办法
1万
查看次数

删除Vim中的一对括号,括号或大括号

在Vim中,如果我有代码如(在Ruby中):

anArray << [anElement]
Run Code Online (Sandbox Code Playgroud)

我的光标在第一[,我可以跳到]%钥匙,我可以删除之间的所有内容[]对用d%什么,但如果我只是想删除[,并]留下两个之间的所有剩余内容.换句话说,最快捷的方式是什么:

anArray << anElement
Run Code Online (Sandbox Code Playgroud)

vim

50
推荐指数
5
解决办法
2万
查看次数

Vi/Vim恢复打开的文件

我想知道这个常见的IDE功能是否可用.

假设我使用Vim打开许多文件,使用vsplitsplit.然后,我关闭一切.

第二天,我想要恢复这些文件.也就是说,恢复它们打开的方式,而不必再打开每个(使用splitvsplit).

那可能吗?

更新:

使用mksession!source命令,在.vimrc文件中映射命令,有没有办法参数化映射,以便编写特定的文件?

例如:

map <F2> :mksession! ~/vim_session @INSERT_HERE<cr> "Save session to @INSERTHERE file
Run Code Online (Sandbox Code Playgroud)

提前致谢

vi vim

46
推荐指数
2
解决办法
2万
查看次数