Vim - как сохранить и выполнить наиболее часто используемые команды?

var today = new Date();
var tomorrow = new Date();
tomorrow.setDate(today.getDate()+1);

Быть осторожным, потому что это может быть хитро. При установке "завтра", это только работает, потому что это - соответствия текущего значения год и месяц для "сегодня". Однако установка на число даты как "32" обычно будет все еще работать просто великолепно для перемещения его в следующий месяц.

6
задан Fred 24 August 2009 в 11:01
поделиться

6 ответов

The following in .vimrc will define a new command Wrap that does what you want.

command! Wrap :set tw=50 | :normal gggqG

Call it with :Wrap

9
ответ дан 8 December 2019 в 03:10
поделиться

Если вы хотите использовать его только один раз, используйте макрос, как указано в некоторых других ответах. Если вы хотите делать это чаще, вы можете включить следующую строку в свой .vimrc файл:

:map \r :set tw=50<CR>gggqG

Это сопоставит \ r , чтобы две ваши строки выполнялись всякий раз, когда вы нажимаете \ r . Конечно, вы также можете выбрать другой ярлык, например (Ctrl + R) или или что-то в этом роде.

12
ответ дан 8 December 2019 в 03:10
поделиться

Для быстрого начала поместите это в свой .vimrc:

" define the function
" '!' means override function if already defined
" always use uppercase names for your functions
function! DoSomething()
    :set tw=50
    gggqG 
endfunction

" map a keystroke (e.g. F12) in normal mode to call your function
nmap <F12> :call DoSomething()<CR>

примечание: отформатированный код выше выглядит ужасно, но строки, начинающиеся с «, являются комментариями.

6
ответ дан 8 December 2019 в 03:10
поделиться

Кроме макросов, вы можете использовать argdo . Эта команда выполнит одну и ту же операцию со всеми открытыми файлами. Вот как вы форматируете все открытые файлы, используя : argdo и : normal :

shell> vim *.txt

:argdo exe "normal gggqG"|up
2
ответ дан 8 December 2019 в 03:10
поделиться

Прежде чем вы начнете писать тысячи строк .vimrc (что хорошо, но вы можете отложить это на время), я думаю, вы можете захотеть посмотрите на обычную запись, в частности, вы можете рассмотреть возможность использования q x (где x - любой ключ) для записи, q для завершения записи и @ x для выполнения записанного макроса.

1
ответ дан 8 December 2019 в 03:10
поделиться

Да, важным словом является макрос

Но похоже, что такая «команда», как: set tw = 50, была бы лучше включена в .vimrc , поэтому vim будет использовать его при каждом запуске.

0
ответ дан 8 December 2019 в 03:10
поделиться