我需要写很多代码,并且经常编译。我讨厌为了编译代码而来回切换不同的窗口。有没有可能在底部打开一个小窗口,运行invoke shell,然后在需要的时候关闭那个窗口?
xqnpmsa81#
使用GVim或MacVim,您可以在命令行中运行外部命令:Gvim/MacVim附带了一个非常有限的shell,它会很乐意地向你显示编译器的输出。
:!command :!command %
对于CLI Vim,相同的方法将暂停Vim并返回到shell以执行您的命令。在这两种情况下,您都将收到一条消息,要求您按Enter键返回到正常编辑。使用:make | cw是一个稍微复杂一点的替代方法,它还可以在快速修复窗口中显示错误。一个更复杂的方法是将Tim Pope的Dispatch插件与tmux或screen结合使用。
:make | cw
hwazgwia2#
听起来像是屏幕http://www.gnu.org/software/screen/的问题http://aperiodic.net/screen/quick_reference命令快速参考
ogq8wdun3#
我使用tmux来实现类似的功能。我在我的 ~/.tmux.conf 文件中有以下内容:
tmux
bind s splitw -v -p 25 -c '#{pane_current_path}' '/bin/bash' bind q kill-pane
按下 Ctrl-b + s(prefix + s),底部会打开一个包含bash shell的新窗格。我可以从那里运行shell命令:find、grep、make 等。完成后,我按 Ctrl-b + q 关闭shell。要在每个bash会话上启用tmux,请将以下内容添加到您的 ~/.bashrc:
[[ -z "$TMUX" ]] && exec tmux
px9o7tmv4#
如果编译成功,可以Map一个键到编译器并运行程序:
:map F8 :!cc % && ./a.out
或者只是
:sh make run Ctrl-D
另一个选择是使用Ctrl-Z暂停vi并在shell中执行您的操作,然后输入fg将vim返回到前台。请注意,这实际上是shell的一个特性,而不是vim,但它产生了您所寻求的效果。请注意,这个想法源自丹尼尔Barrett的书 “Efficient Linux at the Command Line”。我忘记了页码。
vi
fg
vim
4条答案
按热度按时间xqnpmsa81#
使用GVim或MacVim,您可以在命令行中运行外部命令:Gvim/MacVim附带了一个非常有限的shell,它会很乐意地向你显示编译器的输出。
对于CLI Vim,相同的方法将暂停Vim并返回到shell以执行您的命令。
在这两种情况下,您都将收到一条消息,要求您按Enter键返回到正常编辑。
使用
:make | cw
是一个稍微复杂一点的替代方法,它还可以在快速修复窗口中显示错误。一个更复杂的方法是将Tim Pope的Dispatch插件与tmux或screen结合使用。
hwazgwia2#
听起来像是屏幕http://www.gnu.org/software/screen/的问题
http://aperiodic.net/screen/quick_reference命令快速参考
ogq8wdun3#
我使用
tmux
来实现类似的功能。我在我的 ~/.tmux.conf 文件中有以下内容:按下 Ctrl-b + s(prefix + s),底部会打开一个包含bash shell的新窗格。我可以从那里运行shell命令:find、grep、make 等。完成后,我按 Ctrl-b + q 关闭shell。
要在每个bash会话上启用
tmux
,请将以下内容添加到您的 ~/.bashrc:px9o7tmv4#
如果编译成功,可以Map一个键到编译器并运行程序:
或者只是
另一个选择是使用Ctrl-Z暂停
vi
并在shell中执行您的操作,然后输入fg
将vim
返回到前台。请注意,这实际上是shell的一个特性,而不是vim
,但它产生了您所寻求的效果。请注意,这个想法源自丹尼尔Barrett的书 “Efficient Linux at the Command Line”。我忘记了页码。