Попробуйте отключить режим мыши в vim с помощью :set mouse=
. Добавьте это к вашему~/.vimrc
(без:
). Вам также может понадобиться закомментировать любую существующую строку set mouse=
, если она есть.
Это отключит всю обработку мыши -в vim, вернув к X-обработке мыши по умолчанию -, т.е. щелчок левой кнопкой -, чтобы начать выделение, щелчок правой кнопкой -, чтобы расширить выделение, и средний -. ] щелкните, чтобы вставить. В частности, обратите внимание, что щелчок мышью в окне vim будет , а не перемещать курсор мыши или взаимодействовать с режимом визуального выбора vim.
Кстати, рассматривали ли вы возможность использования :map
или записи макросов вместо того, чтобы использовать на мыши суб-стандартные версии функций, встроенных -в vim?
Достаточно просто сопоставить последовательности команд с клавишами, например. :map, JJJj
, чтобы сопоставить их с запятой.
Или используйте q
с последующей буквой или цифрой для записи макроса в регистр. например. qaJJJjq
для связывания JJJj
с @a
. Затем вы можете запустить этот макрос, просто набрав @a
. Вы также можете записать множество макросов и сопоставить их с ,
или любым другим по мере необходимости, чтобы быстро переключаться между несколькими общими операциями. например.:map, @a
Я использую клавишу,
(запятая )для краткого -термина (, то есть отображения текущего сеанса редактирования ), потому что он не сопоставлен ни с чем, что я когда-либо использовал. Для постоянных сопоставлений я использую функциональные клавиши и устанавливаю их в своем файле ~/.vimrc
. например. map <F5> {!}par^V^M}
сопоставляет клавишу F5 для перемещения курсора в начало текущего абзаца, передачи его через средство преобразования абзаца par
, а затем перемещения курсора за пределы абзаца (vim
, построенного -. ] в абзаце переформатирование, но я предпочитаю par
).
Обратите внимание, что сопоставления и макросы могут быть сколь угодно сложными. Запись макроса с помощью q
будет записывать все, что вы вводите, пока вы снова не наберете q
. и если вы хотите вставить управляющий символ, такой как ESC или возврат каретки -, в команду :map
,вы можете использовать Ctrl-V
или ^V
, чтобы «убежать» от них при входе на карту -, например.
:map, Do^V^[!!date -R^V^MkJ
Это отображает ,
для замены остатка текущей строки (от текущей позиции курсора )на текущую дату и время в формате RFC -2822.
или если вы хотите найти шаблон, соединить три строки, а затем снова выполнить поиск, вы можете сделать что-то вроде этого:
:map, JJJn
Затем выполните первый поиск с помощью /pattern<enter>
и нажмите ,
, чтобы выполнить объединение и поиск следующего вхождения. В этот момент вы можете выбрать, присоединиться ли и снова искать (нажать ,
снова )или просто снова искать (нажатьn
)или сделать что-то совсем другое. Я обычно делаю такие вещи, когда не хочу выполнять простой поиск -и -замену, но хочу решать каждый раз (, например. когда, вероятно, будет слишком много ложных -положительных совпадений, и создание идеального шаблона поиска по регулярному выражению займет больше времени, чем того стоит)
Вышеупомянутое является лишь очень простым примером того, для чего это можно использовать -это не сильно отличается от простого ввода 3J
и последующего нажатия n
для поиска -далее и .
для повторить последнюю команду... и можно, конечно, :map,.n
. Это действительно полезно, когда вам нужно повторить последовательность команд, которую нельзя повторить всего лишь.
I don't know how to transfer ownership of files from an account on one installation to an account on another.
Файлы не принадлежат имени пользователя, они принадлежат UID. Сопоставление между именем пользователя и UID обычно управляется в файле базы данных пользователей /etc/passwd
. Вот пример фрагмента
root:x:0:0:root:/root:/bin/bash
tom:x:1000:1000:Tom Pearce,,,:/home/tom:/bin/bash
bill:x:1001:1001:Bill Brewer,,,:/home/bill:/bin/bash
jan:x:1002:1002:Jan Stewer,,,:/home/jan:/bin/bash
peter:x:1003:1003:Peter Gurney,,,:/home/peter:/bin/bash
При запуске ls -l
владельцы UID/GID для каждого файла преобразуются с помощью этой базы данных в соответствующие имена. Вы можете увидеть фактические имена с помощью ls -ln
.
Итак, для «передачи» права собственности на файлы у вас есть несколько вариантов
Убедитесь, что сопоставление имени с UID/GID одинаково в обеих системах. В этом случае chown
/ chgrp
не требуются, поскольку владельцы файлов сопоставляются с одним и тем же набором имен в обеих системах.
Узнайте исходный UID/GID и целевой UID/GID и измените каждый затронутый файл один за другим. Это не так просто, как кажется, потому что вы должны быть осторожны, чтобы не изменить файл на пару UID/GID, которая впоследствии будет изменена еще раз. Как правило, вы должны chown
/ chgrp
для каждого файла указать временный диапазон UID, который нигде не используется ни в одной из систем, а затем изменить их с этого набора на фактический набор.
# Example to change file UIDs from 1000 to 1010
find / -mount -user 1000 -exec chown 61010 {} +
# Later, when you've moved all the file ownwerships out of the 1xxx range
find / -mount -user 61010 -exec chown 1010 {} +