LinuxForum.Fans
Тема

[Решено] Закрепление шортката для скрипта в Vim

Автор: SamuelLinux 7 сообщений 1590 просмотров
#41221

Здравствуйте.

Подскажите, пожалуйста, как закрепить за сценарием горячую клавишу в Vim?

Я делаю так.

text

" ~/.vimrc
" выполнить сценарий Ruby по нажатию Ctrl + r
  map <C-r> :ruby load "<путь_к_сценарию>/test.rb"

Однако, по нажатию указанной клавиатурной комбинации в окне Vim'а, сценарий не выполняется, а происходит копирование строки :ruby load... в командную строку редактора. Далее я могу нажать Enter, и данный скрипт будет успешно выполнен. Мне же нужно, чтобы он выполнялся сразу, без копирования.

Спасибо.

Debian GNU/Linux 5.0.4;
Vim 7.1.314.

#41224

А так?

text
map <C-r> :!ruby<SPACE>load<SPACE>"<путь_к_сценарию>/test.rb"<CR>
#41237


А так?

Я понял вашу логику, но нет, не работает так. Ruby нативно поддерживается Vim'oм* (при условии, что Vim собран с поддержкой Ruby), и можно "напрямую" передавать Vim'у сценарии на этом языке без "!"**.

Видимо, по-другому как-то нужно шорткат закрепить, но как?
________
*:help ruby
**Вот так например — :ruby puts('Привет, дуралей!')

#41239

Гм...сценарии vim выполняются по :source . Больше пока мыслей нету.

Назначение хоткея верно происходит. Надо определиться с синтаксисом самой команды

#41245

Всё, разобрался сам. Нужно добавить <Enter> в конец строки.

text

map <C-r> :ruby load "<путь_к_сценарию>/test.rb" <Enter>

Хотя, всё равно, я думаю должен существовать какой-то более изящный способ назначить шорткат.

Спасибо за помощь.

#41247

а разве <CR> и <Enter> это не одно и тоже?

#41264

Да, одно и тоже. Всё работает и так, и так. Спасибо.

<cr> — это, похоже, более «официальный» способ завершить команду вводом.

Войдите или зарегистрируйтесь, чтобы ответить.