Позиция курсора в vi при открытии файла

vishex () { echo '#!/bin/bash' > $1; chmod +x $1; vi $1 } 

Целью вышеуказанной функции является наличие псевдонима для быстрого и удобного создания сценариев bash. Я хотел бы, чтобы при открытии файла курсор не стоял бы в линии Шебанга, а на строке ниже. Я пробовал что-то вроде echo 'blabla\n', echo "blala\n", printf "blala\n" без каких-либо результатов.

2 Solutions collect form web for “Позиция курсора в vi при открытии файла”

Использовать это:

 vishex () { [ -e "$1" ] || echo -e '#!/bin/bash\n\n' > "$1"; chmod +x "$1"; vi "+normal G" +startinsert "$1" } 
  • [ -e "$1" ] проверяет, существует ли скрипт. Если да, echo не отменяет его.
  • -e в echo позволяет интерпретировать escape-обратные сбрасывания, такие как \n для новой строки. Затем он вставляет две строки новой строки после строки shebang.
  • +normal G запускает команду ex, которая перескакивает до последней строки в файле.
  • +startinsert переключается непосредственно в режим вставки (вы также можете оставить это, поскольку это не относится к вопросу).

Таким образом, при выполнении vishex script он выглядит следующим образом:

 #!/bin/bash <- cursor is here ~ [...] ~ -- INSERT -- 3,1 All 

Предполагая, что ваш vi действительно vim , из manpage:

 +[num] For the first file the cursor will be positioned on line "num". If "num" is missing, the cursor will be positioned on the last line. 

Таким образом, используйте:

 vi + "$1" 
  • Shell vi mode prints (arg: повторение): Как его удалить?
  • vi <TAB> завершает только каталоги в bash
  • Инициализация поиска в vi перед запуском
  • Как получить все четные строки и нечетные строки из файла и сохранить их в двух разных файлах, таких как Evenfile & Oddfile?
  • Является ли замена конкретной строки в файле с помощью сценария bash, возможного в VIM или EX?
  • Как я могу подсчитать количество слов в файле, редактируя файл в vim
  • Почему у Vim разные позиции курсора для разных режимов?
  • Невозможно планировать задачи в crontab
  • Редактор Vi работает во время редактирования
  • vi: как использовать строку в качестве команды?
  • Раскомментирование нескольких строк кода, заданных номерами строк, с использованием vi или vim
  • Linux и Unix - лучшая ОС в мире.