Предложения для записей в системном администраторе .vimrc


21

По крайней мере, я всегда раскомментирую синтаксис в / etc / vim / vimrc


Осторожно, всегда иметь синтаксис может быть плохой идеей, если вы часто редактируете большие файлы. В больших файлах (десятки или сотни МБ) подсветка синтаксиса может привести к тому, что vim станет безответственным в течение нескольких секунд, поскольку он потребляет много ресурсов ЦП. Просто попробуйте отредактировать огромный XML-файл ... Конечно, вы всегда можете это сделать: syn off (как только vim восстановится ...).
слеське

Ответы:


4

Наш технический директор имеет довольно полнофункциональную конфигурацию Vim на GitHub .

Особенности:

  • Подсветка синтаксиса, 2 пробела, расширенные вкладки.
  • NERDtree, представление дерева файлов, похожее на ящик проекта TextMate.
  • FuzzyFileFinder , плагин для выполнения функций TextMate cmd-T.
  • Много цветовых тем с хорошим (сумерки) по умолчанию.

Я нахожу это отличным для кодирования Ruby, так как наши инструменты системного администрирования написаны на Ruby.


Я только что поиграл с кучей из них, и есть намного больше, чтобы исследовать конфигурацию vim, которую вы перечислили, но она соответствует моим ожиданиям нормальных значений по умолчанию и полезных функций. Не уверен, как вики-сообщество позволяет мне голосовать за "ответили", но в любом случае. Благодарность!
Гарет

17

Во- первых, если у вас есть более чем на пару машин вы работаете, старайтесь размещать ~/.vim/, ~/.vimrcи другие полезные файлы конфигурации ( screen, ваша оболочка и т.д.) в системе контроля версий. Я предпочитаю использовать darcs- это дешево в системах Debian (не нужно устанавливать компилятор Haskell, просто установите пакет напрямую), распространяется и имеет отличные интерактивные режимы. Если вы знаете / нравится git, вы также можете придерживаться этого.

Мои текущие конфигурационные файлы доступны в моем Darcs хранилище, http://repo.harnir.net/. Некоторые конкретные примеры из моего ~/.vimrcследования. Извините, нет ссылок на скрипты и т. Д., Потому что я новый пользователь, но все те, на которых вы можете найти http://vim.org/.

Основные скрипты ViM для системных администраторов

  • скрипт резервного копирования является обязательным при редактировании удаленных файлов. Я использую скрипт cbackup.vim , который хранит последние 10 копий каждого отредактированного файла в центральном каталоге и автоматически удаляет старые - просто поместите их в свой ~/.vim/plugins/каталог и забудьте об этом :-)

  • TaskList позволяет быстро найти FIXME, XXXи TODOтеги в текущем файле, отображать их и перейти к метке только с одним нажатием клавиши. Если вы используете эти теги, рассмотрите возможность установки этого

  • dbext необходим для всех администраторов баз данных, а также очень полезен для программистов, работающих с базами данных. Давайте запустим запросы, проверим структуру баз данных и еще много чего. Это, по существу , передний конец для таких инструментов , как mysql, sqlite3, sqlplusи другие. Если вы работаете с базами данных, это обязательно!

Синтаксические файлы

Я не видел много полезного синтаксиса в дикой природе, большинство файлов, с которыми работают системные администраторы, являются конфигами, /etcи они обычно довольно хорошо выделены. У меня в ~/.vim/syntax/настоящее время есть синтаксис для CSS-цветов , который великолепен (также хорош для веб-разработчиков), но остальное не очень хорошо написано, я, возможно, обновлю их в свободное время. Дополнительные файлы синтаксиса, которые стоит иметь: dhcpd.conf , / etc / network / interfaces , файлы конфигурации nginx и local.cf SpamAssassin .

Полезный совет с синтаксисом: если файл конфигурации не распознан (со странным именем, например /etc/apache2/sites-enabled/some.domain.com, вы можете либо добавить правильное расширение к его имени (в данном случае .conf), либо добавить моделин ViM в конце его:

# vim: filetype = apache

Варианты конфигурации ViM

Большинство параметров конфигурации очень популярны, например, и set nocompatible rulerт. Д. Очень хорошие варианты:

  • set gdefault: инвертирует gрежим в s///g- с этой опцией /gбудет использоваться по умолчанию, поэтому вам не нужно добавлять его каждый раз - просто добавьте его, чтобы выключить

  • set incsearch ignorecase smartcase hlsearch: необходим для поиска по файлам - инкрементный, показывает совпадения в реальном времени, поиск игнорирует регистр, если вы не используете заглавные буквы

  • set pastetoggle=<F6>: или другой ключ, который вы предпочитаете, переключается между режимами pasteи nopasteрежимами, обязательным, если вы копируете и вставляете что-то с веб-страниц, таких как ServerFault :-)

  • set noerrorbells visualbell t_vb=: избавляйся от надоедливого звонка или визуального звонка каждый раз, когда ты что-то делаешь;)

Функции, раскладки клавиатуры

  • вставьте свое имя пользователя и текущую дату в файл, это полезно, если вы работаете в команде и добавляете в файлы комментарии о том, кто что-то изменил, когда. Просто напишите xxsigи нажмите пробел, он будет изменен на что-то вроде harnir 20090531. Для того, чтобы это работало корректно с пользователем root (т.е. вместо имени пишите свое имя пользователя root), вам необходимо войти в систему с помощью sudo.

    iabbrev xxsig <Esc>: r! [-n "$ SUDO_USER"] && echo "$ SUDO_USER` date '+ \% Y \% m \% d'` "\ | \ | echo "$ USER` date '+ \% Y \% m \% d'` "<CR> I <BS> <Esc> A
    
  • Вставьте комментарий "строк", вроде бы # -- Some title -------------------{{{1, длиной 78 символов - нажмите \com#в обычном режиме и вот оно. Вы будете автоматически в режиме замены, чтобы вы могли добавить заголовок:

    nmap \ com # O # <Esc> 72A- <Esc> 3A {<Esc> A1 <Esc> <Home> 4 <Right> R <Space>
    

Вы можете легко изменить его для других систем (комментариев ", //и т.д.), или просто проверить свой конфигурационный файл.

Конечное прикосновение

Если у вас есть файлы конфигурации в системе RCS, вы можете иногда включать параметры конфигурации, специфичные для определенного компьютера. Для этого хорошо иметь ~/.vimrc.localфайл, включаемый автоматически в конце конфигурации (если он, конечно, присутствует).

если файл читаемый (развернуть ("~ / .vimrc.local"))
        источник ~ / .vimrc.local
ENDIF

Последний совет - как бы хорошо это ни было - не работает, если у вас есть смонтированные по NFS домашние каталоги: независимо от того, на какой машине вы находитесь, ваш домашний каталог будет одинаковым. Также обратите внимание, что этот совет зависит от определения «~» - некоторые оболочки не поддерживают эту стенографию.
Мэй

Как системный администратор вы, вероятно, работаете на серверах с учетной записью «root», которая должна быть локальной и не монтироваться через NFS. В этом случае /root/.vimrc.local должен работать нормально.
Drybjed

6

Не совсем уверен, какая часть этого конкретно связана с sysadmin, но мои основы:

syntax on
set background=dark
set shiftwidth=2
set tabstop=2
if has("autocmd")
  filetype plugin indent on
endif
set showcmd             " Show (partial) command in status line.
set showmatch           " Show matching brackets.
set ignorecase          " Do case insensitive matching
set smartcase           " Do smart case matching
set incsearch           " Incremental search

Я также всегда проверяю, есть ли у машины доступ к файлу подсветки синтаксиса nginx .


Я только сформулировал это так, чтобы отделить то, что может быть конкретно связано с «программированием» для .vimrc. Как вы думаете, я должен изменить вопрос?
Гарет

Нет, оставь все как есть, я уверен, что у некоторых людей есть сисадмин, но только не я.
Адам Гиббинс

Вообще с этим согласен ... Но табуляция состоит из 8 пробелов. Все остальное, и он ведет себя по-другому в vim, чем в less / tail / cat. Может быть, одна из тех религиозных вещей, хотя.
Александр Кармель-Вильё

4

Если вы обычно работаете с пользователем, это позволяет «передать» файл в sudo, чтобы его можно было сохранить.

cmap w!! %!sudo tee > /dev/null %

используйте команду:

:w!!

вызвать sudo и сохранить файл.


Интересный. Почему вы используете teeвместо cat?
Дэвид Шмитт

1
Потому что кошка не будет ничего писать в файл; он просто пишет в стандартный вывод.
Крис Джестер-Янг

cat ->% Работает так же хорошо.
Олле


2

Бесстыдная вилка. Это на самом деле не изменение .vimrc, а скорее плагин VIM. Я использую RCSVers на каждой установленной версии VIM. В основном он использует команду RCS для сохранения версии любого файла, который вы редактируете. Вы не знаете, сколько раз я испортил файл конфигурации только для того, чтобы RCSVers спасли меня, показав мне изменения, которые я сделал.

http://www.vim.org/scripts/script.php?script_id=563


2

Не используйте .vimrc, чтобы избежать изучения VIM

Так как я знаю, что многие новички VIM будут читать это, лучшее предложение, которое у меня есть, это: «Не ленитесь и не помещайте записи на карту в ваш .vimrc» Изучение нестандартных способов ведения дел в VIM заставит вас почувствовать полный гимп, когда вы без вашего vimrc. Кривая обучения для vi крутая, но вы не делаете себе одолжений, решая не учиться.


1
Vim имеет приятные функции. Почему бы не использовать его? Когда вам нужно переключиться на vi, это временно. Если вы думаете, что вам придется много работать там, где не установлен vim, стоит его установить.
Люк М

0

По крайней мере, часть моего ответа совпадает с моим программированием .vimrc:

set hidden
map <TAB> :e#<CR>

map <F7> :set paste!<CR>
map <F8> :set hlsearch!<CR>
map <F9> :!co -l %<CR>:e<CR>
map <F10> :!rcsdiff %<CR>
map <F11> :!ci -u %<CR>:e<CR>

Если хотя бы некоторые файлы, которые вы редактируете, отсутствуют в RCS, они должны быть! :)



0

Я часто заканчиваю тем, что использую strace, чтобы выследить странные проблемы. В результате, попытка выделить синтаксис некоторых строк может быть смешной с большой строкой. В этом случае я использую set synmaxcol = 2048, чтобы ограничить подсветку синтаксиса 2048 столбцами.

Я также большой поклонник плагина taglist, который использует обильные теги. До сих пор я был в состоянии собрать скомпилированный бинарный файл ctags и не сталкивался с какими-либо проблемами с библиотекой. Это позволяет быстро перемещаться по любому коду, с которым я работаю. Обычно это Perl, Python или C.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.