4
我忘了數組語法而在巖組-命令行:ZSH:如何在命令行中運行Vim-style替換命令?
$ hello=[1,2,3,4] %ERR:
我想通過取代來解決此問題。在Vim中,我會做:[email protected],@ @g
。 那麼如何編輯當前行,或者通過運行命令將其稱爲當前緩衝區?
我忘了數組語法而在巖組-命令行:ZSH:如何在命令行中運行Vim-style替換命令?
$ hello=[1,2,3,4] %ERR:
我想通過取代來解決此問題。在Vim中,我會做:[email protected],@ @g
。 那麼如何編輯當前行,或者通過運行命令將其稱爲當前緩衝區?
[jkramer/sgi5k:~]# list=(1,2,3,4,5,6,7,8,9,10)
[jkramer/sgi5k:~]# !:gs/,//
list=(1 2 3 4 5 6 7 8 9 10)
見zshexpn(1)歷史完成/交替的更多信息。
只有使用自定義窗口小部件ZLE,例如:
function _-sedsubs()
{
emulate -LR zsh
zle -R "Substitution:"
local SEDARG="s"
local key=""
read -k key
local -r start=$key
while (((#key)!=(##\n) &&
(#key)!=(##\r))) ; do
if (((#key)==(##^?) || (#key)==(##^h))) ; then
SEDARG=${SEDARG[1,-2]}
else
SEDARG="${SEDARG}$key"
fi
zle -R "Substitution: $SEDARG"
read -k key || return 1
done
BUFFER="$(echo $BUFFER | sed -r -e "$SEDARG")"
}
zle -N sedsubstitute _-sedsubs
bindkey "\C-o:s" sedsubstitute