Как сохранить содержимое буфера обмена X11 (скопировать )при закрытии, например. Vim, чтобы вставить его содержимое позже?

Вы могли бы сделать это с помощью perl:

#!/usr/bin/perl

# number of parent directories to drop
$drop = 2;

open( $input, '<', $ARGV[0] );

# drop header lines
$line = <$input>;
$line = <$input>;

# third line is first data, being root has no name, was requested that it wasn't used, which is good, because it makes life simplier, assuming the first dir is always 1
$line = <$input>;
#@databits = split(/\s+/, $line);
$hash{'1'} = '';

while ( $line = <$input> ) {
    @databits = split(/\s+/, $line);
    $hash["$databits[0]"] = $databits[1];
}

close( $input );

open( $input, '<', $ARGV[0] );
# now we print!
# headers
$line = <$input>;
print "$line";
$line = <$input>;
print "$line";

# drop first data line
$line = <$input>;

while ( $line = <$input> ) {
    @databits = split(/\s+/, $line);
    @replace = split(/\//, $databits[2]);

    $count = 0; # start at the start
    foreach (@replace) {
        $replace[$count] = $hash[$_];
        $count++;
    }

    for (my $i=0; $i < $drop; $i++) {
       shift(@replace);
    }

    $replaced = join('/', @replace);
    if ( $replaced ne '' ) {
        print "$databits[0] $databits[1] /$replaced/ $databits[3]\n";
    }
}

Подайте свой вывод в виде текстового файла, в приведенном ниже примере под названием «ввод». Вы можете сделать красивые столбцы с помощью команды column.

$./replace.pl input | column -t
modelId  name  folderPath      uuid
7        Test  /Test/          kbY7RDHjRLS
8        xxx   /xxx/           bT5WAkPWQ1
9        Test  /xxx/Test/      9PYeLZDRTne
10       ab    /ab/            7Cse21+1SIag
11       abc   /Test/abc/      pNMvzDdyS%
16       efg   /Test/abc/efg/  a6R97tAxSBW
1
17.10.2021, 09:29
1 ответ

Та страница , которую вы цитируете, датирована 2010 годом.

Я использую vim 8.1, и он работает правильно.

Вы уверены, что используете версию vim с установленным графическим интерфейсом? используйте :versionдля отображения включенных функций. +clipboardдолжно отображаться.

Я установил vim-gtk3для проверки этого (vim -tiny не имеет включенной функции буфера обмена и отображается как -clipboard.

Я использую убунту 20.04.02


---редактировать --Ответ на комментарий

Только что перепроверил

  • vim.gtk3 -работает

  • vim.tiny -сбой

  • Я дергаю строку, используя следующую последовательность :"+yy

  • Я вставляю, используя следующую последовательность :"+p

:version
VIM - Vi IMproved 8.1 (2018 May 18, compiled Sep 20 2021 11:42:42)
Included patches: 1-2269
Modified by team+vim@tracker.debian.org
Compiled by team+vim@tracker.debian.org

[2-е редактирование] Дальнейшие разъяснения по начальным двум тестам и последующему 3-му тесту.

Изначально пробовал 2 теста

Тест 1 на клемме 1

  1. запустить vim
  2. скопировать строку со следующей последовательностью "+yy
  3. выйти из vim
  4. запустить vim
  5. вставить строку с "+p

Тест 2 на клемме 1

  1. запустить vim
  2. скопировать строку со следующей последовательностью "+yy
  3. выйти из vim
  4. Во втором терминале запустите vim
  5. вставить строку с "+p

Тест 3 на клемме 1

  1. запустить vim
  2. скопировать строку со следующей последовательностью "+yy
  3. выйти из vim
  4. запуститьcat
  5. вставить строку с помощью CTRL+Shift+v

Все тесты работают, когда я использую vim.gtk3


[Редактировать 3] Добавление ссылки на демо asciicast

Я использую X11, а не Wayland

echo $XDG_SESSION_TYPE
x11
0
17.10.2021, 16:38

Теги

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