2010-09-01 27 views
15

Có cách nào trong zsh hoặc bash để có dòng trạng thái không? ví dụ. trong VI nó sẽ cho bạn biết rằng bạn đang ở chế độ chèn với - INSERT -zsh vi trạng thái chế độ dòng

Có eqivalent cho dòng lệnh không?

+0

[Tương tự] (http://stackoverflow.com/câu hỏi/1039713/khác nhau-bash-nhắc-cho-khác nhau-vi-chỉnh sửa-mode) –

Trả lời

20

Điều này đã được trả lời tại Super UserUnix Stack Exchange. Về tính đầy đủ của Stack Overflow:

function zle-line-init zle-keymap-select { 
    RPS1="${${KEYMAP/vicmd/-- NORMAL --}/(main|viins)/-- INSERT --}" 
    RPS2=$RPS1 
    zle reset-prompt 
} 
zle -N zle-line-init 
zle -N zle-keymap-select 

Và nếu bạn muốn chỉ số dưới dòng hiện tại chứ không phải là ở bên phải, từ Unix Stack Exchange:

terminfo_down_sc=$terminfo[cud1]$terminfo[cuu1]$terminfo[sc]$terminfo[cud1] 
function zle-line-init zle-keymap-select { 
    PS1_2="${${KEYMAP/vicmd/-- NORMAL --}/(main|viins)/-- INSERT --}" 
    PS1="%{$terminfo_down_sc$PS1_2$terminfo[rc]%}%~ %# " 
    zle reset-prompt 
} 
preexec() { print -rn -- $terminfo[el]; } 
+1

hmmmm ... Bây giờ tôi muốn làm cho nó để ctrl + c trong khi trong - INSERT - không bỏ lệnh , nhưng thoát khỏi chế độ NORMAL, sau đó cuối cùng là ctrl-c ở chế độ NORMAL để thoát lệnh. – trusktr

+1

Bạn có thể đặt các ràng buộc khác nhau cho Ctrl + C trong chế độ chèn và chế độ thông thường, chỉ cần chuyển tùy chọn đúng sang 'bindkey'. – Gilles

+0

Sweeet. Tôi không thể chờ đợi để làm điều này. – trusktr

Các vấn đề liên quan