Копировать в основной выбор в VIM

Несмотря на то, что этот вопрос старый, я думал, что каждый заслуживает более надежного ответа:

ps axo pid=,stat=

Это испустит два столбца с разделителями пробелов, первый из которых является PID, а второй из них его состояние.

Я не думаю, что даже GNU ps обеспечивает способ фильтрации по состоянию напрямую, но вы можете надежно сделать это с помощью awk

ps axo pid=,stat= | awk '$2~/^Z/ { print }'

You теперь список PID, которые являются зомби.

ps axo pid=,stat= | awk '$2~/^Z/ { print $1 }'

Предоставление списка идентификаторов Zombie с разделителями строк.

Теперь вы можете указать, что состояние больше не нужно отображать, поэтому его можно отфильтровать.

ps axo pid=,stat= | awk '$2~/^Z/ { print $1 }'

работать с этим списком с помощью простого цикла оболочки

for pid in $(ps axo pid=,stat= | awk '$2~/^Z/ { print $1 }') ; do
    echo "$pid" # do something interesting here
done

ps является мощным инструментом, и вам не нужно ничего делать, чтобы получить информацию о процессе из него.

3
задан 11 May 2012 в 22:35

2 ответа

Вам нужна версия vim, которая имеет +clipboard в своей версии. Установите пакет vim-gnome, и все будет в порядке. (И вам не нужно использовать gvim для использования буфера обмена, он все равно работает при запуске vim в терминале.)

4
ответ дан 25 May 2018 в 11:33
  • 1
    установка vim-gnome сделала это, даже с -clipboard – brillout 11 May 2012 в 23:14

"+y использует специальный регистр и является частью функции clipboard vim. Поскольку ваша версия vim не поддерживает буфер обмена (-clipboard означает, что функция буфера обмена недоступна), вам нужно использовать что-то еще.

Вы можете попробовать этот плагин, который не зависит от функция clipboard и должна работать в чистой версии vim. Кажется, что это зависит от одной из программ screen, xclip, tmux.

2
ответ дан 25 May 2018 в 11:33

Другие вопросы по тегам:

Похожие вопросы: