Bash
如何在 VIM 中連結外部命令?
如果我在 VISUAL 模式下在 VIM 緩衝區中選擇以下文本
f() { echo "f"; } f
然後執行
:'<,'>w !xclip | !eval "$(xclip -o)"
我明白了
/bin/bash: eval: line 3: syntax error near unexpected token `(' /bin/bash: eval: line 3: `feval f() {'
如何正確連結 2 個命令,以便第一個將 VISUAL 選擇複製到系統剪貼板,第二個通過使用對其進行評估
eval
?
試試這個:
'<,'>w !xclip | eval "$(xclip -o)"
!
需要使用一次,vim 會將命令作為一個命令執行。
:'<,'>!xclip && eval "$(xclip -o)"
在我的測試中執行得非常好(Ubuntu 16.04 LTS,帶有 bash 4.3,vim 7.4),並將 4 行轉換為單個字元“f”。儘管不推薦,但替換
&&
為也可以。|
我不認為使用 vim 執行 shell 命令與在通常的 shell 中執行有很大不同,而且不應該如此。