Мне никогда не требовалась собственная команда move
ranger, так как я мог использовать команду mv
в командной строке ranger для перемещения выбранного файла или каталога в заданный каталог, например:
shell -f mv %f /foo/bar
где %f
- это макрос рейнджера для выделенных файлов, а %s
будет для всех выбранных.
Опция -f
разветвляет операцию, чтобы сеанс рейнджера не прерывался длинным файловым процессом.
Вы можете вызвать командную строку с s,! или же @.
Другой способ, особенно если вам нужно сделать много копий / ходов, - это открыть еще одну вкладку в рейнджере, где gn
и cd - каталог, в который вы хотите скопировать / переместить файлы. Затем вернитесь на первую вкладку, чтобы выбрать файлы, и используйте макрос рейнджера для следующей вкладки %D
, чтобы переместить файлы, например, в
shell -f mv %f %D
Но это на самом деле только спасает вас от удара yy Tab dd Tab
. Если честно, я обычно переключаю таб и dd
.
Я установил привязки клавиш в файле rc.conf следующим образом:
#sync sel'd into dir on next tab
map ytt shell -f rsync -rult %s %D
#sync sel'd from dir on next tab
map yff shell -f rsync -rult %S %d
#sync sel'd into dir on next tab :incl referred files
map ytr shell -f rsync -ruLt %s %D
#sync sel'd from dir on next tab :incl referred files
map yfr shell -f rsync -ruLt %S %d
#move sel'd into dir on next tab
map dtt shell -f mv %s %D
#move sel'd from dir on next tab
map dff shell -f mv %S %d
Обратите внимание, что %S
- это макрос для выбранных файлов на следующей вкладке.
%d
- это макрос для пути к каталогу текущей вкладки.
И некоторые другие,
#copy sel'd into h'd dir
map pc shell -f rsync -rut %s %d/%f/
#move sel'd into h'd dir
map pm shell -f mv -u %s %d/%f
#copy buffer into h'd dir
map pds shell -f rsync -rult %c %d/%f/
#move buffer into h'd dir
map pdm shell -f mv -u %c %d/%f
#sync buffer'd files into curr dir :links only
map ps shell -f rsync -rult %c %d
Где %c
- это макрос рейнджера для файлов, хранящихся в буфере копирования / вырезания.
Файлы легко добавляются в буфер с помощью yy
, yank или ya
для добавления в буфер копирования. Аналогично, с помощью dd
, чтобы вырезать, или da
, чтобы добавить в буфер вырезания.
Смотрите мои другие раскладки клавиш здесь