zshrc: change sudo-command-line switch 'sudo'
authora-wing <1@233.email>
Mon, 17 May 2021 14:27:51 +0000 (22:27 +0800)
committera-wing <1@233.email>
Mon, 17 May 2021 14:27:51 +0000 (22:27 +0800)
fix add 'sudo' plugin zsh-syntax-highlighting error

etc/zsh/zshrc

index 5a74fee..38571fd 100644 (file)
@@ -1200,10 +1200,15 @@ zle -N grml-zsh-fg
 # run command line as user root via sudo:
 function sudo-command-line () {
     [[ -z $BUFFER ]] && zle up-history
-    if [[ $BUFFER != sudo\ * ]]; then
-        BUFFER="sudo $BUFFER"
-        CURSOR=$(( CURSOR+5 ))
+    local cmd="sudo "
+    if [[ ${BUFFER:0:${#cmd}} == ${cmd} ]]; then
+        CURSOR=$(( CURSOR-${#cmd} ))
+        BUFFER="${BUFFER:${#cmd}}"
+    else
+        BUFFER="${cmd}${BUFFER}"
+        CURSOR=$(( CURSOR+${#cmd} ))
     fi
+    zle reset-prompt
 }
 zle -N sudo-command-line