Vimscript оценивается точно так же, как команды Ex, набранные в командной строке :
. В команде ex
переменных не было, поэтому их невозможно указать. При интерактивном вводе команды вы, вероятно, использовали бы
для вставки содержимого переменной:
:sleep <C-R>=timetowait<CR>m<CR>
... но в скрипте необходимо использовать :execute
. Все литературные части команды Ex должны быть заключены в кавычки (одинарные или двойные кавычки), а затем соединены с переменными:
execute 'sleep' timetowait . 'm'
В вашем примере вы хотите поместить переменную i
в команду :%s
:
for i in range(1,40) | execute '%s/S' . i . 'Tg//gn' | endfor
Клиентский аргумент имеет некоторые правила анализа Что вы можете найти на страницах человека для Startx
и Xinit
.
В основном вам нужно, чтобы клиент начать с косой или точек. Это работает:
$ startx /usr/bin/python apk.py
или общий чит, чтобы использовать путь от ENV:
$ startx /usr/bin/env python apk.py
, если программа может начать сам по себе (правильно #! Линия начать в случае Python), вы можете просто
$ startx ./apk.py
-121--244325- Если вы не используете петлю для
для других целей, вы всегда можете расширить свое регулярное выражение для покрытия всего диапазона номеров:
:%s/S\([1-4]0\|[1-3]*[1-9]\)Tg//gn