Используйте Netrw или Nerdtree в Zsh/Bash для выбора файла ПУТЕМ ПРОСМОТРА?

Это было бы возможно, если Вы могли бы реализовать многопутевой TCP и на Вашем компьютере и на серверах, Вы соединяетесь с. (Или SCTP с "параллельным многопутевой". Были патчи для SCTP для Firefox в какой-то момент). Я понимаю, что это находится все еще на этапе исследования в данный момент.

Связывание не будет работать..., альтернативное имя "агрегирование каналов" могло бы помочь объяснить это. Связывание позволяет Вам объединить несколько ссылок между A, и B (принимающий B сотрудничает с A). Вы не можете объединить ссылку от до B со ссылкой от до C.

4
10.12.2014, 22:49
2 ответа

Вы в основном уже знаете ответ из здесь . Это довольно легко поставить это все вместе, как это:

function insert_files() {
    vifm -f < /dev/tty > /dev/tty

    while read l; do
        LBUFFER+="'$l' "
    done < ~/.vifm/vimfiles

    zle reset-prompt
}
zle -N insert_files
bindkey '^t' insert_files

Я не ZSH-пользователь, поэтому я украл структуру кода из ответа Лукасом. Что касается Bash, я смотрел один раз для обработки вывода внешней команды внутри ярлыка, но не нашел его.

Demonstration

P.S. Мой код содержит довольно примитивное сбежание, вы можете улучшить это, и, возможно, изменить способ продвижения расстояния между аргументами.

3
27.01.2020, 20:51

ZSH позволяет связать функцию оболочки к клавише, а также есть встроенный для вкладывания текста в вашу командную строку. Таким образом, вы можете сделать что-то вроде этого (в ZSH):

# define a function that does the work
function my_browser_function () {
  local result
  result=$( some command that returns the filename )
  # print -z $result (see comments)
  LBUFFER+=$result
}
# turn the function into a widget
zle -N my_browser_function
# bind it to some key ("CTRL-X I" for example)
bindkey '\Cxi' my_browser_function

Теперь вам просто нужно получить команду, которая позволяет просматривать файловую систему в том, как вы хотите, и распечатывает результат на STDOUT.

Редактировать: Вот очень базовая версия вышеуказанной функции, которая использует VIM:

function my_browser_function () {
  local file=$(mktemp)
  vim -c "map <C-A> :cal system('echo '.expand('%').'/'.getline('.').'>$file')<bar>q<cr>" .
  LBUFFER+=$(<$file)
  rm $file
}

, вы можете навигаться в VIM / NETRW как обычно, а затем использовать (Ctrl-A) - A Concept файл / каталог имя.

Очевидно, это всего лишь очень базовая функция. Если вы хотите больше функциональной функции, вы также можете написать функцию автозагрузки VIM и вызовите, что из командной строки VIM с -c.

4
27.01.2020, 20:51

Теги

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