fu! SetBang(v) range
if a:v == 1
normal gv
endif
let l:t = &shellredir
let &shellredir = ">%s\ 2>/dev/tty"
let @" = join(systemlist(input("\"!"))," ")
let &shellredir = l:t
endf
nnoremap "! :cal SetBang(0)<cr>
xnoremap "! :cal SetBang(1)<cr>
Каждый раз, когда вы нажимаете "!
, пользователю будет предложено ввести команду, и «безымянный» регистр "
будет заполнен ею. Затем вы можете вставить его, как обычно, с помощью P
в обычном или визуальном режиме, с помощью Ctrl-R"
в режиме вставки и т. д.
Например, если текст (отображается с помощью|
):
<uuid>|</uuid>
и нажатие "!uuidgen<Enter>P
вставит новый uuid в каретку.
Конечно, вы можете использовать другую привязку вместо "!
.
drwxrwxrwt. 4 root root 4096 Jan 14 20:00 /var/tmp
t
вместо последнего x
в буквах разрешений означает, что для каталога установлен закрепленный бит , что нормально для /tmp
и /var/tmp
. Это вызывает дополнительное ограничение в том каталоге :, что вы сможете удалить файл , только если вы являетесь владельцем этого файла.
Это делается для того, чтобы пользователи не саботировали работу друг друга, удаляя временные файлы других пользователей.