2010-01-14 2 views
1

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

map <SPACE>t :set transparency-=1 
map <SPACE>T :set transparency+=1 

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

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

Отдельно было бы неплохо иметь возможность быть в состоянии типа ПРОСТРАНСТВОт и имеют прозрачность уменьшенную на 20; однако, когда я пытаюсь получить

E481: No range allowed. 

Как включить спецификацию диапазона?

Большое спасибо.

+0

Для раскладки клавиатуры в виде уценок см. Http://meta.stackexchange.com/questions/26207/how-to-format-as-keyboard-keys. –

+0

Отлично, спасибо! – daltonb

ответ

6

Я не уверен в первой части вашего вопроса, но, чтобы получить <Space>т, чтобы иметь возможность выполнять свою работу:

:map <space>t :<C-U>exe "set transparency-=".v:count1<CR> 
  • С <C-U> вы удалите линейный диапазон, который добавляется к вашей команде ex при вводе в нормальном режиме.
  • С помощью exe вы выполняете «динамический» vimscript.
  • v:count1 - это счет, присвоенный последней команде Нормального режима (20 в этом примере). И если есть отсчет не дал ему по умолчанию в 1.

Для получения дополнительной информации см

:h v:count 
:h v:count1 

Update:

Вы можете опустить exe используя let форму вместо set одного:

:map <space>t :<C-U>let &transparency-=v:count1<CR> 

См. :h :let-&.

+0

эй спасибо .. это был безупречный. (ну почти, «установленная прозрачность - =» не должна иметь пробела после - =) – daltonb

+0

2secondbanana: Исправлено –

Смежные вопросы