Я использовал vi на протяжении десятилетий, и теперь я практикуюсь с использованием vim, ожидая, что в конечном итоге перейду на него полностью.У меня есть ряд вопросов, но я начну с того, который беспокоит меня больше всего.Что-то, что я давно сделал в vi, - это введите в файл, который я редактирую, команду нижней строки, перетащите ее в именованный буфер (например, с помощью клавиш "ayy
) и выполните этот буфер (используя :@a^M
).Это позволяет мне редактировать сложные команды, пока они не будут работать правильно, и сохранять команды, которые я буду использовать много раз при работе в файле.(В моем файле .exrc есть сопоставление, которое сводит это нажатие и выполнение к одному нажатию клавиши; но это не относится к моему вопросу.)
Я считаю, что в vim мне нужно многобольше ^V
с чем в vi.Это означает, с одной стороны, что когда у меня есть какая-то командная строка в файле, которую я собираюсь использовать таким образом, мне теперь нужно сохранить ее в двух версиях, одной для vi и одной для vim.Кроме того, требование дополнительных ^V
выглядит не элегантным: очевидно, различные специальные символы, которые интерпретируются один раз, когда именованный буфер выполняется в vi, интерпретируются дважды, когда он выполняется в vim - но почему?
Например, команда вида
map =f :w^V|e foo^M
(отображение последовательности нажатия клавиш =f
для записи текущего файла и перехода к файлу foo
) работает следующим образомв vi, но должен иметь форму
map =f :w^V^V|e foo^V^M
в vim.(Здесь в обеих командах ^ V получается путем ввода ^ V ^ V, а ^ M - путем ввода ^ V ^ M; поэтому для ввода первой версии нужно ввести три ^V
s, а вторую - семь.)если быть точным: первая версия работает в vim, если она фактически введена в нижнюю строку (с указанными дополнительными ^V
с);но последнее требуется в исполняемом именованном буфере.
Любое объяснение?Что-нибудь, что я могу установить, чтобы это исправить?(«Совместимый», похоже, не делает этого.) Есть ли надежда, что это будет исправлено в следующем выпуске?(Система, на которой я работаю, использует версию 7.0.)
(Я должен признаться, что я не программист; просто пользователь, который стал опытным в vi.)