2014-01-29 25 views
0

如何在Vim中编写一个命令来打开多个文件(由参数给出),让每个Vim实例(以及相应的文件)具有自己的特性终端中的标签?使用vim在终端中用单独的选项卡打开* .h文件

我试着这样做,但XFCE4端是有(它一直将8即使TERM == xterm-256color)与负载256色的问题:

vims() 
{ 
     for f; do xfce4-terminal --tab --hold --execute vim $f 
     done 
} 
+0

你需要或者已经在你的实际代码中有'do'之前的分号。你不需要其他三个分号。 –

+1

你为什么不简单地打开单个Vim实例中的每个文件? – romainl

+0

我更喜欢有独立的终端窗口/标签,它似乎更好地浏览我的终端上的标签比通过vim。 – user1766555

回答

0

如何使用TMUX一个终端窗口中?它使这种自动化更容易。

你可以开始一个新的会话:

tmux new-session -s vims -n vim0 -d "ls [email protected]" 

,然后产卵尽可能多的标签,只要你喜欢:

for f in "[email protected]" 
do 
    tmux new-window -t vims -d -n "$f" "vim $f" 
done 

另外,您得到许多来自其他TMUX乐趣的好处。你可以把你的vim放在中间插入,并在ssh和tmux attach上完全一样。

0

我知道你是专门询问每个文件的一个终端选项卡,但下面的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)"执行此操作。

相关问题