我如何编写一个命令,在Vim中打开多个文件,并在终端中为每个Vim实例(和相应的文件)提供自己的选项卡?
我试过这样做,但xfce4-terminal在加载256色时出现了问题(即使在TERM == xterm-256color的情况下,它仍然保持到8):
vims ()
{
for f; do xfce4-terminal --tab --hold --execute vim $f
done
}发布于 2014-01-30 08:40:18
在一个终端窗口中使用tmux怎么样?它使得这种自动化变得容易得多。
您可以使用以下命令启动新会话:
tmux new-session -s vims -n vim0 -d "ls $@"然后根据需要生成任意数量的选项卡:
for f in "$@"
do
tmux new-window -t vims -d -n "$f" "vim $f"
done此外,您还可以从tmux获得许多其他有趣的好处。您可以将vim放在中间,将ssh放在tmux attach中,以便在完全相同的位置拾取。
发布于 2014-01-31 17:49:57
我知道您特别询问每个文件的终端选项卡,但是下面的shell脚本将打开每个文件,并将其作为一个单独的Vim选项卡中的参数。有关更多详细信息,请参阅Vim中的:he tabedit。
#!/bin/sh
################################################################################
# vim_tabs.sh
# Open a bunch of files in separate terminal Vim tabs
################################################################################
if [[ $# -eq 0 ]]; then
echo "No files to open..."
exit 1
fi
vim_cmd="vim $1"
shift
while [[ $# -gt 0 ]]; do
vim_cmd="$vim_cmd -c \":tabnew $1\""
shift
done
echo "$vim_cmd"
eval "$vim_cmd"然后,您可以通过执行./vim_tabs.sh "$(ls *.h)"来执行此操作。
https://stackoverflow.com/questions/21439918
复制相似问题