Перечислите каталоги deeply-nested-first.
find . -depth -type d -exec rmdir {} \; 2>/dev/null
(Обратите внимание, что перенаправление относится find
управляйте в целом, не только к rmdir
. Перенаправление только для rmdir
вызвал бы значительное замедление, поскольку необходимо будет вызвать промежуточную оболочку.)
Можно постараться не работать rmdir
на непустых каталогах путем передачи -empty
предикат для нахождения. GNU находит тесты каталогом, когда он собирается выполнить команду, таким образом, каталоги, которые были просто освобождены, будут забраны.
find . -depth -type d -empty -exec rmdir {} \;
Другой способ убыстриться состоял бы в том, чтобы сгруппироваться rmdir
вызовы. Оба, вероятно, будут заметно быстрее, чем оригинал, особенно под Cygwin. Я не ожидаю большого различия между этими двумя.
find . -depth -type d -print0 | xargs -0 rmdir 2>/dev/null
find . -depth -type d -exec rmdir {} + 2>/dev/null
То, какой метод быстрее, зависит от того, сколько непустых каталогов Вы имеете. Вы не можете объединиться -empty
с методами для группировки вызовов, потому что затем каталоги, которые только содержат пустые каталоги, не пусты к этому времени find
смотрит на них.
Другой метод должен был бы выполнить несколько передач. Быстрее ли это, зависит от большого количества вещей, включая то, может ли целая иерархия каталогов остаться в дисковом кэше между find
выполнения.
while [ -n "$(find . -depth -type d -empty -print -exec rmdir {} +)" ]; do :; done
С другой стороны, используйте zsh. Спецификатор шарика F
соответствия непустые каталоги, таким образом, /^F
соответствия пустые каталоги. Каталоги, которые только содержат пустые каталоги, не могут быть подобраны так легко.
while rmdir **/*(/N^F); do :; done
(Это завершается когда rmdir
получает пустую командную строку.)
Следующее будет работать только если vim --version
указывает, что Вы имеете +xterm_clipboard
функция. В противном случае необходимо будет установить дополнительные пакеты или перекомпилировать энергию с той добавленной опцией.
Существует на самом деле две опции для этого:
"+y
копии к "обычному" буферу буфера обмена (таким образом, можно вставить использование Ctrl+V, щелкните правой кнопкой и выберите "Вставку" и т.д.), в то время как
"*y
копии к выбору X11 - можно вставить от этого буферного щелчка средней кнопкой использования.
Отметьте это "*
и "+
работайте оба пути. Таким образом, при выборе некоторого текста в другом приложении можно вставить его в использование энергии "*p
и если Вы скопировали некоторый текст (использующий, скажем, Ctrl-C) затем, можно вставить его в использование энергии "+p
.
Если Вы используете энергию> =7.3.74, то можно на самом деле поместить это в vimrc:
set clipboard=unnamedplus
Который будет автоматически использовать +
буфер (системный буфер обмена) по умолчанию. Затем для дергания (копируют), Вы просто используете постоянного клиента y
команда, и т.д.
Я нашел, что это поведение было довольно раздражающим, тем не менее, как команды как d
поместите текст, на который они воздействуют в буфер по умолчанию, который означал, что я не мог сделать быстрого dd
и вставьте строку из Интернета, например.
dd
означает, "сокращает одну строку", так, чтобы было бы ожидаемое поведение. В редком случае, когда Вы хотите на самом деле удалить строку в забвение, "_dd
добьется цели.
– user7089
24.04.2014, 03:38
vim --version
указывает, что Вы имеете +xterm_clipboard
функция. В противном случае необходимо будет установить дополнительные пакеты или перекомпилировать энергию с той добавленной опцией.
– rudolph9
30.03.2017, 18:51
Удержите клавишу Shift и выберите текст с курсором мыши.
Текст будет скопирован в буфер обмена.
Это также работает на вставку от буфера обмена в к энергии.
Чтобы быть ясным, это работает на vim
выполнение в терминале такой как xterm
.
xterm
.
– nozimica
03.05.2011, 22:27
set nu
включен. Таким образом, u, вероятно, хотел бы переключить номера строки с некоторым ярлыком или работать :set nonu
команда перед каждым выбором
– Steven Pribilinskiy
24.01.2018, 16:34
Я нахожу стандарт "+gP
и "+y
управляет очень трудный использовать. Таким образом, я повторно отобразился Ctrl-Y
для того, чтобы дергать в буфер обмена и Ctrl-P
вставлять от буфера обмена. Добавьте это к .vimrc
nnoremap <C-y> "+y
vnoremap <C-y> "+y
nnoremap <C-p> "+gP
vnoremap <C-p> "+gP
Неважно я нашел ответ - он записан в меню энергии.
"+y
Очень интуитивный.
+xterm_clipboard
функция).
– Gilles 'SO- stop being evil'
04.05.2011, 00:02
Только добавить ответ non-vim-specific: можно использовать Ctrl+Shift+C
скопировать в системный буфер обмена в Ubuntu (если функциональность обеспечивается Вашим эмулятором терминала, терминалом гнома для, каждый обеспечивает его). Ctrl+Shift+V
вставки к другому окну терминала, регулярному Ctrl+V
вставки к приложению для GUI.
Кроме того, при выборе текста в терминале затем щелкните средней кнопкой, он будет вставляться от буфера обмена X11.
Только для добавления, если что-нибудь работает попытка переключить терминал, который переносит энергию (если Вы используете энергию от терминала). Я нашел, что, например, буфер обмена недоступен землетрясением, в то время как доступно от терминала гнома.
По умолчанию при установке облегченной версии энергии затем Вы не будете иметь +xterm_clipboard
функция на (vim --version | grep xterm
), который необходим для использования *
и +
регистры за пределами энергии.
Для включения его необходимо или скомпилировать энергию сами или установить версию энергии, которая идет с ним, предварительно включил. Я использовал гнома энергии: sudo apt-get install vim-gnome
. Если Вы выполняете vim --version | grep xterm
, Вы будете видеть, что это теперь +xterm_clipboard
.
Теперь, попытайтесь копировать в +
и *
и это должно работать.
Затем вставьте другую программу с помощью CTRL + v
.
Работает в терминале на моем Ubuntu 16.04. Не уверен насчет gvim
и других систем.
Cuando comprobé que mi vim no era compatible con el portapapeles:
vim --version | grep clip
-clipboard +insert_expand +path_extra +user_commands
+emacs_tags -mouseshape +startuptime -xterm_clipboard
Instalé vim -gnome y luego revisé nuevamente
vim --version | grep clipboard
+clipboard +insert_expand +path_extra +user_commands
+emacs_tags +mouseshape +startuptime +xterm_clipboard
Ahora puedo copiar y pegar usando "+y" y "+p" respectivamente.
Для Ubuntu 14.04 и выше:
Просто выберите текст, который вы хотите скопировать. Затем щелкните мышью по центральной кнопке прокрутки и перейдите в буфер обмена
И сделайте то же самое (щелкните мышью по центральной кнопке прокрутки ).
Работает на 100% как в vim
, так и в tail
на Ubuntu.
shift'
затемshift=
затемy
(не внезапно, один за другим, кроме сдвигов, конечно). – Reid 30.03.2017, 21:39