linux – 如何在后台打开另一个文件Vim from Bash命令行?

前端之家收集整理的这篇文章主要介绍了linux – 如何在后台打开另一个文件Vim from Bash命令行?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在从使用G vim转移到控制台Vim.

我在Vim中打开一个文件,然后挂起Vim,在命令行上运行几个命令,然后返回到Vim.

> Ctrl Z(在正常模式下)挂起Vim并返回到控制台
> fg可以用来将焦点返回给Vim
>作业列出后台作业,可用于获取作业号
把一个给定的工作带到前台(例如,fg%2把工作2带到
前景).

但是,当Vim处于后台并发布vim文件时,文件将在Vim的新实例中打开.

我习惯于在Gvim中使用–remote选项来打开现有Gvim实例中的文件.

题:

>如何在后台打开另一个文件Vim从命令行?
>这是在控制台和Vim之间移动的合理工作流程?

更新:

我刚读了this answer by @jamessan,它提供了一些想法.他显示以下代码片段:

vim --servername foo somefile.txt
:shell
<do stuff in your shell>
vim --servername foo --remote otherfile.txt
fg

但是,我必须考虑如何使用或许与一些别名更容易使用.

这会是一个好办法吗?
>如何才能有效地使用?

解决方法

这也是我需要的.我发现这个线程,虽然没有令人满意的方法,但很高兴看到像我一样的要求.

我的做法是

添加到.bashrc

v() {
    vim_id=`jobs|sed -n "/vim/s/\[\([0-9]\)\]+.*/\1/p"`
    if [ -n "$vim_id" ]; then
        echo "tabedit $@" > ~/.vim_swap/e.vim && fg $vim_id
    else
        vim $@
    fi
}

添加到.vimrc

nnoremap <silent> <space>e :source $HOME/.vim_swap/e.vim<Bar>:call writefile([],$HOME."/.vim_swap/e.vim")<CR>

然后v foo.c打开第一个文件,编辑…,ctrl-z挂起vim,做shell东西,v bar.h带vim前台.

在VIM中,按< Space> e键入tab.h.

所以想法是从shell命令生成vim命令,将它们保存到temp.vim文件中.在VIM中,映射键来源.vim文件并清除它.

原文链接:https://www.f2er.com/linux/393821.html

猜你在找的Linux相关文章