Pull to refresh

Comments 18

UFO just landed and posted this here
Даже рутинная работа превращается в интересный квест с необходимостью повышенного внимания (режимы).
А я начал знакомство с Linux с освоения vim. Редактор невероятно удобный, когда привыкнешь, но неинтуитивный интерфейс многих отпугивает ).

Про работу одновременно в нескольких вкладках даже не подозревал (хотя может оно мне не так сильно и нужно было...), так что автору респект!
А я постоянно пользуюсь табами.
Выставляю горячую клавишу <Сtrl> O на открытие нового таба:
А я постоянно пользуюсь табами(:tabnew).
Выставляю горячую клавишу <Сtrl> O на открытие нового таба:
nmap <C-o> :tabnew
И для открытия нового таба использую функцию:
:set tabline=%!ShortTabLine()

function ShortTabLine()
let ret = ''
for i in range(tabpagenr('$'))
" select the color group for highlighting active tab
if i + 1 == tabpagenr()
let ret .= '%#errorMsg#'
else
let ret .= '%#TabLine#'
endif
" find the buffername for the tablabel
let buflist = tabpagebuflist(i+1)
let winnr = tabpagewinnr(i+1)
let buffername = bufname(buflist[winnr-1])
let filename = fnamemodify(buffername,':t')
" check if there is no name
if filename == ''
let filename = 'noname'
endif
" only show the first 6 letters of the name and
"… if the filename is more than 8 letters long
if strlen(filename) >=8
let ret .= '['. filename[0:5].'..]'
else
let ret .= '['.filename.']'
endif
endfor
" after the last tab fill with TabLineFill and reset tab page #
let ret .= '%#TabLineFill#%T'
return ret
endfunction
Замена текста во всех буферах:

:bufdo %s/pattern/substitution/ge | update
Спасибо… еще один маленький шаг в переходе на vim для меня.
Пользуюсь vim-ом время от времени на примитивном уровне по необходимости.

Прочитав статью, понял, что использование подобных финтов на автопилоте сравнимо с владением техники карате на уровне первого дана. Количество нюансов, конечно, воображение потрясает, но понимаешь, что шансов дотянуться до подобной виртуозности крайне мало.
это точно не про меня. выучил только базовые возможности vim'а, только те которые сильно влияют на производительность труда (все от лени-матушки, от неё, родимой). вообще думаю, что реально в голове оседает только то, чем пользуешься сравнительно часто.

я например свой vimrc практически не менял, как писать vim-функции — не знаю. да и вообще много чего не знаю в этом редакторе, но то что знаю — очень здорово помогает в работе, избавляя от рутинной, монотонной работы, делая её немного творческой и даже забавной.

думаю, что у каждого есть свой «набор» похожих знаний и умений в «базовых» продуктах — таких как vim, bash, coreutils,… — те которые нужны в ежедневной работе и позволяют не отвлекаться на рутину.

надеюсь что своей статьей помог хотя-бы кому-нибудь дополнить свой «набор» и сделать свою работу хоть чуточку веселее, продуктивней
Веселее стало — спасибо.
На самом деле страшновато делать изменения в буферах, которые не видишь своими глазами, особенно если изменения несколько сложнее, чем вставка одной строки (с -o в реальности никогда файлы не открываю, только табы)

По старинке и с большим контролем это можно сделать, выполнив записанный макрос с помощью @m, и повторяя его во всех вкладках с помощью @@ — по времени, наверное, не сильно дольше, но совсем не страшно :)
Спасибо за статью, узнал о normal — очень удобная штука. Я не так давно начал учить Vim, сейчас как раз в процессе и чем дальше, тем интереснее :) На днях смотрел скринкаст именно на эту тему — Derek Wyatt на vimeo — Working with Many Files (Screencast 2). Примерно то же самое, только немного другими инструкциями + немного нагляднее.
Вот так короче, используя однострочник и нерассмотренный argdo (запись макроса в данном случае не нужна)

vim -c ":argdo 1norm! OПервая строка" file1.txt file2.txt file3.txt
А есть вариант наоборот, открыть файл из командной строки чтобы он не открывал отдельное окно, а просто добавился в открытый вим в виде вкладки или буфера?
(имеется в виду извне вима, а не :e blahblahbla\file.txt)
Всё-всё, разобрался уже)) спасибо огромное!!!
Sign up to leave a comment.

Articles