Используйте Vim как МЕНЕДЖЕР
. При некотором творческом использовании скрыть и iskeyword
это можно сделать:
setlocal nowrap
setlocal conceallevel=3
setlocal concealcursor=nvic
exe "setlocal iskeyword+=\b,_"
syntax match BACKHIDE '.\b' conceal contained
syntax match BOLD '\(.\)\b\1' contains=BACKHIDE
syntax match Underlined '_\b.' contains=BACKHIDE
highlight BOLD cterm=bold
Поскольку Backspace и т. Д. Все еще существуют, поиск слова с помощью *
будет соответствовать только таким же выделенным словам:
Обратите внимание, как жирный man
найден, а нормальный man
в текущей строке - нет.
С некоторыми дополнительными настройками (бесстыдный плагин) Vim предоставляет удобный пейджер для человека
, причем лучше, чем меньше
.
Чтобы заставить Vim применить соответствующие настройки, я делаю следующее:
MANPAGER = 'vim -'
. В ~ / .vim / vimrc
установите как минимум:
установить несовместимый
плагин типа файла для синтаксиса
на
{{1 }} if! empty ($ MAN_PN)
autocmd StdinReadPost * set ft = man | файл $ MAN_PN
endif
Для команды, запущенной man
с использованием MANPAGER
, имя страницы руководства предоставляется в MAN_PN
переменная окружения. Мы можем воспользоваться этим, чтобы определить, когда Vim используется как MANPAGER
, а также для определения имени страницы руководства.
В ~ / .vim / ftplugin / man.vim
:
setlocal nolist
setlocal buftype = nofile
setlocal bufhidden = hide
setlocal noswapfile
setlocal только для чтения {{1 }} setlocal nomodifiable
setlocal nowrap
setlocal hidelevel = 3
exe "setlocal iskeyword + = \ b, _"
setlocal hidealcursor = nvic { {1}}
nnoremap q: q!
nnoremap
Параметры создают неизменяемый временный буфер, доступный только для чтения ( см. Как создается рабочий буфер? в Vim Wikia ), отключение файлов подкачки. Затем он применяет настройки, перечисленные в начале этого сообщения, и добавляет некоторые сопоставления для удобства - q
закроет текущую страницу руководства, а Пробел переместит на одну страницу вниз, как в меньше
.
В ~ / .vim / after / syntax / man.vim
:
совпадение синтаксиса BACKHIDE '. \ B' скрытие содержит
совпадение синтаксиса BOLD '\ (. \) \ b \ 1 'contains = BACKHIDE
соответствие синтаксиса Подчеркнутый' _ \ b. ' contains = BACKHIDE
выделить BOLD cterm = bold
Это синтаксис и команды выделения с начала сообщения.
Только с этими минимальными настройками:
Обратите внимание, как подсвечивается верхняя строка - сам Vim поставляется с некоторой подсветкой синтаксиса справочной страницы, которую вы можете увидеть, если удалили пробелы (используя col -b -x
], Например). Однако таким образом вы теряете намного больше, чем приобретаете, поскольку у Vim нет возможности узнать все, что могло быть подчеркнуто или выделено жирным шрифтом.
Мои личные настройки используют цветовую схему молокаи , номер набора
, плагин авиакомпании и другое выделение для ЖИРНЫЙ
:
highlight link BOLD Constant
И потому что я если в настройках терминала включена прозрачность (не видно на скриншоте), цвета мягче и приятнее, чем здесь.
Если вы включите номера строк (: установите номер
), как я, установите MANWIDTH
на значение меньше COLUMNS
, чтобы у вас не было для прокрутки в сторону, чтобы увидеть весь текст. MANWIDTH = 75
хорошо подходит для терминалов с 80 столбцами. Я использую раскрывающийся терминал шириной с экран (160–240 столбцов в зависимости от разрешения), поэтому фиксированный MANWIDTH = 80
мне подходит.
как насчет этой команды awk? попробуйте с небольшим набором файлов данных
awk '{file=FNR".txt"; print $0 > file}' *.dat
for LINE in {1..50}; do
for FILE in {1..1000}; do
sed -n "${LINE}p" "${FILE}.dat" >>"~/Escritorio/${LINE}.dat"
done
done
В вашем скрипте вы используете одинарные кавычки для выражения sed, переменные не расширяются внутри одинарных кавычек, вам нужно использовать двойные кавычки.
Также есть один лайнер с awk, который может делать то же самое:
awk 'FNR<=50 {filename=sprintf("results/%d.dat", FNR); print >> filename; close(filename)}' *.dat
Просто создайте каталог результатов или измените его в команде на другой, ~
там не расширяется.