0

我的目标是什么:

我想要一个程序为 vim 编辑的每个文件获取 session.vim 和 viminfo.info 文件,并将这些文件 scp 到另一台电脑,然后我可以在另一台电脑上继续工作。

问题:

  • 也许文件没有保存。
    • 应该在程序生成 session.vim 之前保存文件。
  • 如何获取文件的绝对路径。
    • 我只是可以使用 ps -ef | 获取文件名 grep vim。
    • getcwd() 可以获得当前工作目录。但是,我无法将其推送到我用 C 编写的程序中。

这是我的解决方案,但它不起作用,也许你有更好的解决方案,我需要你的帮助。

杀死所有 vim 进程,并获取每个文件的 session.vim 和 viminfo.info。在我的 C 代码中:

system(kill -9 pid);//pid is the pid of vim process.

在我的 .vimrc 文件中:

autocmd VimEnter * let s:this_session='.'.expand('%:t').'.vim'
autocmd VimLeave * if v:dying | call Somefunc() | endif
function! Somefunc()
    silent! wa
    execute 'mksession! '.fnameescape(s:this_session)
endfunction

这没用。

我说清楚了吗?我英语说的不好。

我会非常感谢任何帮助。

4

1 回答 1

1

man kill说:

SIGKILL 9 杀(不能被抓住或忽略)

有了这个-9参数,Vim(以及任何其他进程)没有机会对信号做出反应;该进程将被强制终止。尝试SIGTERM (15)通过省略-9参数发送默认值。请参阅此处了解更多信息。

于 2013-04-15T12:49:42.390 回答