Сброс всех ярлыков Vim и переопределить только некоторые из них - PullRequest
1 голос
/ 15 апреля 2011

Я хочу научиться использовать vim. Все просто: Я не знаю ни одного из его ярлыков . Поэтому я не хочу их изучать, я хочу определить свою собственную для каждой команды!

  1. Есть ли способ отключить все команды и включить только те, которые я установил?
  2. Как переопределить самые основные команды? как вставка, перемещение вверх, перемещение влево, выход из режима вставки ...? Я нашел много руководств по конкретным командам, но ни одного по самым основным.

Спасибо

Редактировать : Пожалуйста ... Могу ли я получить реальный ответ вместо "Вы уверены?"

Редактировать 2 : Основная причина этого в том, что я использую дворак-клавиатуру , поэтому не похоже, чтобы сочетания клавиш отображались на буквы, которые я вижу. .. Это затрудняет: с. И во-вторых, я хочу быть суперэффективным ... Как отображение клавиш вверх, вниз, влево и вправо на «j, k, l,;», это позволит мне редактировать файл без перемещения мои руки вокруг. Наконец, Я НЕНАВИЖУ, когда я набираю неправильный ключ , и я не знаю, что сделал vim (или любой другой инструмент), потому что это была команда / ярлык, но я не знаю, что он сделал, потому что я пока не знаю И зачем учиться сочетаниям клавиш, когда вы можете создавать свои собственные, чтобы вы могли лучше помнить ... Я француз, поэтому некоторые буквы не отображаются в моем сознании, как это было бы для англоязычных.

Ответы [ 4 ]

4 голосов
/ 15 апреля 2011

В вики vim на wikia есть запись для Использование Vim с раскладкой клавиатуры Dvorak и в SuperUser есть нить, в которой обсуждается, стоит ли пытаться использовать Dvorak с vim

Чувства в обоих (комментарии к записи вики и комментарии / ответы к разговору о SU), похоже, указывают на то, что Дворжак и Вим не очень хорошо ладят друг с другом, и я склонен согласиться.

Однако, кроме hjkl, большинство команд все же должно иметь смысл с мнемонической точки зрения, не так ли? И поскольку единственная реальная причина использовать Dvorak - это увеличить скорость, зачем вам физически смотреть на клавиши, чтобы определить, что нужно нажать?

3 голосов
/ 15 апреля 2011

Я бы настоятельно рекомендовал не пытаться переопределять команды. Вам будет намного лучше изучать предоставленные команды и добавлять пользовательские команды, если вы найдете что-то, что вы хотите сделать, которого не существует.

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

2 голосов
/ 15 апреля 2011

Можно удалить только те ярлыки, которые были определены с помощью *map, встроенные команды могут быть переопределены, но не очищаемы.Если вам нужно отключить определенную команду, вам нужно будет выполнить noremap <Key> <Nop>, следующий код должен отключить их все (но учтите, что она переопределяет, ничего не удаляя):

function s:hsescape(str)
    return substitute(substitute(substitute(substitute(a:str,
                \      ' ', '<Space>',         'g'),
                \      '|', '<Bar>',           'g'),
                \     "\n", '<CR>',            'g'),
                \'\c^<\%(buffer\|silent\|expr\|special\)\@=', '<LT>', '')
endfunction
for s:mode in ['n', 'x', 'o']
    for s:char in map(range(0, 0x7F), 'nr2char(v:val)')
        execute s:mode.'noremap '.s:hsescape(s:char).' <Nop>'
    endfor
endfor
for s:mode in ['s', 'i', 'c']
    for s:char in map(range(0, 0x3F), 'nr2char(v:val)')
        execute s:mode.'noremap '.s:hsescape(s:char).' <Nop>'
    endfor
endfor

Обратите внимание, что это должно бытьсразу за ним следует код, который определяет некоторые сопоставления (или удаляет некоторые из <Nop>), или вы сделаете ваш vim бесполезным.

0 голосов
/ 31 декабря 2013

Я взял ссылки из ответа ZyX и создал настройку vimrc для переопределения - и попытался задокументировать процесс и функции. Надеюсь, это поможет кому-то еще:

https://github.com/hiway/po

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...