vim заставляет клавиши со стрелками работать как большинство обычных программ - PullRequest
2 голосов
/ 29 декабря 2011

Я недавно нашел VIM и начал использовать его. Я нашел стрелки и забой, чтобы быть ошибочным. так что я сделал это на забой

set backspace+=indent,eol,start

как это можно сделать для клавиши со стрелкой, чтобы обеспечить нормальную навигацию?

1 Ответ

7 голосов
/ 29 декабря 2011

Вы не говорите точно, какой аспект клавиш со стрелками вы считаете "некорректным", поэтому мне просто нужно угадать.

Вы можете использовать настройку whichwrap, чтобы получить часть того, что вы, вероятно, хотите. От :help whichwrap:

'whichwrap' 'ww'    string  (Vim default: "b,s", Vi default: "")
            global
            {not in Vi}
    Allow specified keys that move the cursor left/right to move to the
    previous/next line when the cursor is on the first/last character in
    the line.  Concatenate characters to allow this for these keys:
        char   key    mode  ~
         b    <BS>   Normal and Visual
         s    <Space>    Normal and Visual
         h    "h"    Normal and Visual (not recommended)
         l    "l"    Normal and Visual (not recommended)
         <    <Left>     Normal and Visual
         >    <Right>    Normal and Visual
         ~    "~"    Normal
         [    <Left>     Insert and Replace
         ]    <Right>    Insert and Replace
    For example: >
        :set ww=<,>,[,]
    allows wrap only when cursor keys are used.
    When the movement keys are used in combination with a delete or change
    operator, the <EOL> also counts for a character.  This makes "3h"
    different from "3dh" when the cursor crosses the end of a line.  This
    is also true for "x" and "X", because they do the same as "dl" and
    "dh".  If you use this, you may also want to use the mapping
    ":map <BS> X" to make backspace delete the character in front of the
    cursor.
    When 'l' is included and it is used after an operator at the end of a
    line then it will not move to the next line.  This makes "dl", "cl",
    "yl" etc. work normally.
    NOTE: This option is set to the Vi default value when 'compatible' is
    set and to the Vim default value when 'compatible' is reset.

В вашем случае вы, вероятно, хотите:

:set whichwrap+=<,>

Это обернет левый и правый конец строки.

Вы также можете попробовать сопоставить <Up> и <Down> с gk и gj в обычном и визуальном режимах, если различие между логическими и отображаемыми строками сбивает вас с толку. В качестве альтернативы вы можете :set nowrap полностью удалить это различие.

...