1

Я использую vi-mode в bash с помощью команды set -o vi. Что раздражает, так это когда я набираю слова заглавными буквами, а затем пытаюсь завершить работу с помощью клавиши табуляции, но не отпускаю клавишу Shift достаточно быстро, это выводит меня из режима вставки и в командный режим. Через несколько месяцев я подумал, что я, естественно, приспособлюсь и перестану это делать, но, похоже, не смогу ...

Теперь, если есть способ переназначить shift-tab (что, я сомневаюсь, означает что-нибудь полезное в любом контексте) просто на обычную вкладку, тогда мои проблемы с командной строкой будут закончены.

Моя настройка - Windows -> Putty -> bash -> экран GNU

1 ответ1

1

У меня была такая же проблема на машине Solaris.

Я исправил это, добавив следующую строку в мой файл .inputrc.

"\e[Z": complete

На самом деле, вот весь мой файл .inputrc (примечание: вы захотите изменить режим с emacs на vi), который я скопировал из Интернета:

# This file controls the behaviour of line input editing for
     # programs that use the GNU Readline library.  Existing
     # programs include FTP, Bash, and GDB.
     #
     # You can re-read the inputrc file with C-x C-r.
     # Lines beginning with '#' are comments.
     #
     # First, include any systemwide bindings and variable
     # assignments from /etc/Inputrc
     $include /etc/Inputrc
      
     #
     # Set various bindings for emacs mode.
      
     set editing-mode emacs
      
     $if mode=emacs
      
     Meta-Control-h:    backward-kill-word      Text after the function name is ignored
      
     #
     # Arrow keys in keypad mode
     #
     #"\M-OD":        backward-char
     #"\M-OC":        forward-char
     #"\M-OA":        previous-history
     #"\M-OB":        next-history
     #
     # Arrow keys in ANSI mode
     #
     "\M-[D":        backward-char
     "\M-[C":        forward-char
     "\M-[A":        previous-history
     "\M-[B":        next-history
     #
     # Arrow keys in 8 bit keypad mode
     #
     #"\M-\C-OD":       backward-char
     #"\M-\C-OC":       forward-char
     #"\M-\C-OA":       previous-history
     #"\M-\C-OB":       next-history
     #
     # Arrow keys in 8 bit ANSI mode
     #
     #"\M-\C-[D":       backward-char
     #"\M-\C-[C":       forward-char
     #"\M-\C-[A":       previous-history
     #"\M-\C-[B":       next-history
      
     C-q: quoted-insert
      
     $endif
      
     # An old-style binding.  This happens to be the default.
     TAB: complete
      
     # Macros that are convenient for shell interaction
     $if Bash
     # edit the path
     "\C-xp": "PATH=${PATH}\e\C-e\C-a\ef\C-f"
     # prepare to type a quoted word --
     # insert open and close double quotes
     # and move to just after the open quote
     "\C-x\"": "\"\"\C-b"
     # insert a backslash (testing backslash escapes
     # in sequences and macros)
     "\C-x\\": "\\"
     # Quote the current or previous word
     "\C-xq": "\eb\"\ef\""
     # Add a binding to refresh the line, which is unbound
     "\C-xr": redraw-current-line
     # Edit variable on current line.
     "\M-\C-v": "\C-a\C-k$\C-y\M-\C-e\C-a\C-y="
     $endif
      
     # use a visible bell if one is available
     set bell-style visible
      
     # don't strip characters to 7 bits when reading
     set input-meta on
      
     # allow iso-latin1 characters to be inserted rather
     # than converted to prefix-meta sequences
     set convert-meta off
      
     # display characters with the eighth bit set directly
     # rather than as meta-prefixed characters
     set output-meta on
      
     # if there are more than 150 possible completions for
     # a word, ask the user if he wants to see all of them
     set completion-query-items 150
      
     # For FTP
     $if Ftp
     "\C-xg": "get \M-?"
     "\C-xt": "put \M-?"
     "\M-.": yank-last-arg
     $endif

     # Make Shift-tab act like regular tab - ms4719 - 20120308
     "\e[Z": complete

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .