Файлы в /etc/rc.d/init.d
предоставляются дистрибутивом. Хотя иногда они могут редактироваться локально, это довольно редко. Список и версию файлов можно легко восстановить на основе других подсказок, а содержимое файлов можно получить у поставщика операционной системы. Открытое чтение этого каталога не является проблемой безопасности.
Если ваш аудитор не находит такого рода проблем, уволите его и найдите лучшую.
Я верю, что вы можете достичь того, чего хотите,:
1 )вход в режим копирования (префикс [)
2 )выделение некоторого текста(скорее всего v (isual select )/y (ank))
3 )отправка на другую панель черезtmux paste-buffer -t [left/right]
Вот доказательство концепции, которую я только что набросал:
Учитывая скрипт Ruby с именем foo.rb в вашем текущем каталоге:
# foo.rb
x = "hello there"
puts x
... и две панели, разделенные по вертикали (bash в сеансе слева/irb справа ), если вы запустите cat foo.rb
, войдите в режим копирования -, извлеките содержимое файла, а затем запустите tmux paste-buffer -t right
на левой панели, вы должны увидеть следующий вывод на правой панели:
λ irb
2.5.1 :001 > x = "hello there"
=> "hello there"
2.5.1 :002 > puts x
hello there
=> nil
Оттуда вы можете написать сценарий оболочки и/или подключить привязку клавиш, чтобы вам не приходилось вводить/вызывать tmux paste-buffer -t [left/right]
.
paste-buffer
должен также обрабатывать «окончание на ввод» для вас. Из записи paste-buffer
справочной страницы tmux:
When output, any linefeed (LF) characters in the paste buffer are replaced with a separator, by default carriage return (CR).
Если разделитель по умолчанию не работает по какой-либо причине, вы также можете указать его, используя paste-buffer -s...
.
Для тех, кто погуглит об этом позже, вот окончательные, полностью -измененные строки из моего.tmux.conf (, вдохновленные ответом pdoherty926 на мой вопрос здесь ).
С этой комбинацией привязок клавиш у меня есть два нажатия клавиш :F5, чтобы начать копирование с того места, где -когда-либо был мой курсор в момент, когда я нажимаю F5, и F6, чтобы закончить копирование и выполнить код в другая панель:
# These are lines that anybody using vim-like copy/paste will have
set-window-option -g mode-keys vi
bind P paste-buffer
bind-key -t vi-copy 'v' begin-selection
bind-key -t vi-copy 'y' copy-selection
# These are the lines that make F5/F6 do their thing
bind-key -n F5 copy-mode \; send-keys v
bind-key -n F6 send-keys y \; paste-buffer -t %1 \; send-keys -t %1 C-m
Причина, по которой я сделал это таким образом, заключается в том, что вы не можете напрямую связать команды начала -выбора и копирования -выбора -, например, «связать -клавишу -n F5 копировать -режим \ ; начать -выделение» не будет работать, но если я свяжу «v», чтобы начать -выделение в режиме копирования (, стандартный vim -, например, привязку ), а затем F5 выполнит «отправить -клавиши v" после входа в режим копирования, это работает.
Если вы используете сеанс ssh, настроенный для обработки ретрансляции кликов мыши, вы также можете добавить следующее:
setw -g mode-mouse on
set -g mouse-select-window on
С этими строками (в дополнение к приведенным выше ), теперь все, что вам нужно сделать, это выделить код с помощью мыши и нажать F6, чтобы запустить его. (Если вам когда-нибудь понадобится обойти захват мыши -кликом -, пока эти строки находятся в вашем.tmux.conf, просто удерживайте нажатой клавишу Shift во время щелчка.)
(опоздал на вечеринку, но все же )Вот плагин vim, который делает именно то, что вы хотите:jpalardy/vim-slime