vim - 告诉 screen 窗口运行上一个命令

标签 vim gnu-screen

我的 vimrc 中有以下内容:

    nnoremap <F1> :!screen -S foo -p run -X stuff '!!^M'

但是,当单击 F1 时,我收到错误:没有上一个命令。

我想要的是告诉名为“foo”的 screen session 中的“运行”窗口运行我之前运行的任何内容。

最佳答案

如果您的意思是 !! 由 bash 执行(因此“运行我之前在该 screen 实例中运行的任何内容”),那么您必须转义它:

nnoremap <F1> :!screen -S foo -p run -X stuff $'\!\!\n'<CR>

或使用system():

nnoremap <F1> :call system('screen -S foo -p run -X stuff $''!!\n''')<CR>

。因为 ! 在任何 bang thingie 中都意味着“将我之前在 vim 中使用其他 bang thingie 运行的任何内容放置在这里”

关于vim - 告诉 screen 窗口运行上一个命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13165946/

相关文章:

bash - GNU Screen - 在 shell 或脚本的后台运行命令中创建 screen

vim - 在vim中为每个按键调用omnicompletion

git - 如何可视化统一差异文件中每个字符的差异?

vim - GoImports 取消 html 语法高亮

python - 在 linux "screen"中运行 Python 脚本会产生 "Cannot assign requested address"

打开 screen 后的 Linux 脚本

macos - GNU SCREEN - MAC OS X 10.8.2 的 USB 串行 tty 通信问题

linux - 在没有特定 session 的情况下杀死 screen #

bash - 通过一行命令在 Ubuntu 中编辑 conf 文件

regex - 如何在 vim regex 中简短地定义一个包含区域变音符号的字母而不直接枚举它们?