首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用vim命令打开*.h文件,并在终端中使用单独的选项卡

使用vim命令打开*.h文件,并在终端中使用单独的选项卡
EN

Stack Overflow用户
提问于 2014-01-30 02:47:54
回答 2查看 410关注 0票数 0

我如何编写一个命令,在Vim中打开多个文件,并在终端中为每个Vim实例(和相应的文件)提供自己的选项卡?

我试过这样做,但xfce4-terminal在加载256色时出现了问题(即使在TERM == xterm-256color的情况下,它仍然保持到8):

代码语言:javascript
复制
vims ()
{
        for f; do xfce4-terminal --tab --hold --execute vim $f
        done
}
EN

回答 2

Stack Overflow用户

发布于 2014-01-30 08:40:18

在一个终端窗口中使用tmux怎么样?它使得这种自动化变得容易得多。

您可以使用以下命令启动新会话:

代码语言:javascript
复制
tmux new-session -s vims -n vim0 -d "ls $@"

然后根据需要生成任意数量的选项卡:

代码语言:javascript
复制
for f in "$@"
do
    tmux new-window -t vims -d -n "$f" "vim $f"
done

此外,您还可以从tmux获得许多其他有趣的好处。您可以将vim放在中间,将ssh放在tmux attach中,以便在完全相同的位置拾取。

票数 0
EN

Stack Overflow用户

发布于 2014-01-31 17:49:57

我知道您特别询问每个文件的终端选项卡,但是下面的shell脚本将打开每个文件,并将其作为一个单独的Vim选项卡中的参数。有关更多详细信息,请参阅Vim中的:he tabedit

代码语言:javascript
复制
#!/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)"来执行此操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21439918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档