Где выбрать редактор хранится в рейнджере?

Существует еще более короткий способ удаления пустых строк в AWK:

awk 'NF' file

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

awk 'NF {printf("%s ", $0); i++;} ! (i % 2) {printf("\n");}' file

Пояснение

В AWK пустая строка означает, что строка/запись не имеет полей, то есть переменная NF (Number of Fields) равна нулю. Приведенная выше строка будет выполнена только в том случае, если NF > 0, при этом будут напечатаны все строки, кроме пустых.

Счетчик i++ - это счетчик непустых строк.

Оператор !(i % 2) используется для печати двух последовательных непустых строк в соответствии с желаемым способом вывода, то есть каждый раз, когда находится кратное 2, оператор modulo !(i % 2) выдает 1, что завершает конкатенацию двух непустых строк.

1
26.11.2018, 03:06
2 ответа

Как указал @toon в трекере ranger, rangerне предоставляет никаких диалогов выбора редактора, если РЕДАКТОР не установлен. Он прибегает к жестко закодированному vim, но хакерам Debian/Ubuntu patch ranger для использования sensible-editor, который представляет собой bash-скрипт, никак не связанный с updates-alternatives, и сохраняет выбор редактора в~/.selected_editor:

$ cat ~/.selected_editor 
# Generated by /usr/bin/select-editor
SELECTED_EDITOR="/bin/ed"

Я предполагаю, что этот sensible-editorbash-скрипт был реализован как хак, потому что update-alternativesработает на системном уровне, и пользователям без root-прав нужно было отредактировать конфигурацию bash, чтобы выбрать свой РЕДАКТОР (, который не работает для всех ).

Вместо неявного исправления rangerразработчики Debian могли явно установить EDITOR=sensible-editorдля сеансов на уровне пользователя. «Явное лучше, чем неявное». По крайней мере, так мы не проведем здесь так много времени. Копаясь man, я обнаружил, что sensible-editorобъясняется на этой странице политики :

.

If it is very hard to adapt a program to make use of the EDITOR or PAGER variables, that program may be configured to use /usr/bin/sensible-editor and /usr/bin/sensible-pager as the editor or pager program respectively.

И, согласно этому тексту, rangerне следует исправлять, потому что он уже знает и использует РЕДАКТОР.


Завершая это заключительными разглагольствованиями, почему edдается как выбор уровня пользователя -редактора Linux в 2018 году ???..

2
27.01.2020, 23:31

Проверьте, на какой редактор указывает сама ОС. Я думаю, рейнджер смотрит на текущую версию по умолчанию для ОС. Измените предпочтительный редактор ОС, и я думаю, что это изменит рейнджеров.

обновление sudo -альтернативы --редактор конфигурации

Введите нужный номер и нажмите Enter.

В вашем случае

auto mode

/bin/ed - priority -100

Каждая альтернатива имеет связанный с ней приоритет. Когда группа ссылок находится в автоматическом режиме, альтернативы, на которые указывают члены группы, будут иметь наивысший приоритет.

Установить приоритет равным 10

Измените это, и все будет хорошо.

0
27.01.2020, 23:31

Теги

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