Пропозиції щодо записів у sysadmins .vimrc


21

Принаймні я завжди коментую "синтаксис" у / etc / vim / vimrc


Обережно, завжди увімкнути синтаксис може бути поганою ідеєю, якщо ви часто редагуєте великі файли. У великих файлах (десятки або сотні Мб) виділення синтаксису може призвести до того, що vim стане безвідповідальним протягом декількох секунд, оскільки він з'їдає багато процесора. Спробуйте просто відредагувати величезний XML-файл ... Звичайно, завжди можна зробити: syn off (раз vim відновиться ...).
sleske

Відповіді:


4

Наш CTO має гарну конфігурацію Vim на GitHub .

Основні моменти:

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

Мені це чудово підходить для кодування Ruby, оскільки наші інструменти системного адміністрування написані на Ruby.


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

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 має важливе значення для всіх DBA, також дуже корисний для програмістів, що працюють з базами даних. Давайте запустимо запити, перевіримо структуру баз даних і що інше. Це, по суті , передній кінець для таких інструментів , як mysql, sqlite3, sqlplusта інші. Якщо ви працюєте з базами даних, це обов’язково!

Синтаксичні файли

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

Корисна порада з синтаксисом: якщо файл конфігурації не розпізнається (має дивне ім’я, наприклад /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), потрібно увійти, використовуючи sudo.

    iabbrev xxsig <Esc>: r! [-n "$ SUDO_USER"] && echo "$ SUDO_USER` дата "+ \% 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 <Право> R <Простір>
    

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

Закінчення дотику

Якщо у вас є файли конфігурації в системі RCS, ви можете іноді включати параметри конфігурації, характерні для певної машини. Для цього добре мати ~/.vimrc.localфайл, включений автоматично в кінці конфігурації (якщо він є, звичайно).

якщо файл читається (розширити ("~ / .vimrc.local"))
        джерело ~ / .vimrc.local
закінчення

Остання порада - хоч це і може бути - не працює, якщо у вас є домашні каталоги, встановлені NFS: незалежно від того, на якій машині ви знаходитесь, ваш домашній каталог буде однаковим. Зауважте також, що ця підказка залежить від визначення "~" - деякі оболонки не підтримують цю стенограму.
Май

Як sysadmin, ви, ймовірно, працюєте на серверах на "root" акаунті, який повинен бути локальним, а не монтуватися через NFS. У цьому випадку /root/.vimrc.local має працювати добре.
сухі змагання

6

Не дуже впевнений, з якою частиною цього конкретно пов'язано систематичне управління, але мої основні елементи:

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, ніж у менше / хвіст / кішка. Хоча це може бути однією з релігійних речей.
Олександр Кармель-Віль

4

Якщо ви зазвичай працюєте над користувачем, це дає можливість "передавати" файл в sudo, щоб його можна було зберегти.

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

використовувати команду:

:w!!

щоб послати судо і зберегти файл.


Цікаво. Для чого ви використовуєте teeзамість cat?
Девід Шмітт

1
Тому що кішка нічого не запише у файл; він просто пише в stdout.
Кріс Єстер-Янг

кішка ->% Працює так само добре.
olle


2

Безсоромна пробка. Це насправді не зміна .vimrc, а скоріше плагін VIM. Я використовую RCSVers у кожній встановленій версії VIM. В основному він використовує команду RCS, щоб зберегти версію будь-якого редагованого файлу. Ви не знаєте, скільки разів я викручував конфігураційний файл, щоб RCSVers врятував мене, показуючи мені внесені вами зміни.

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


2

Не використовуйте .vimrc, щоб уникнути вивчення VIM

Оскільки я знаю, що чимало нових прихильників VIM прочитають це, найкраща пропозиція, яку я маю, це: "Не лінуйтеся і не вкладайте записи в карту у вашому .vimrc" Вивчення нестандартних способів ведення справ у VIM змусить вас почувати себе загальний gimp, коли ви без вашого 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 для відстеження дивних проблем. В результаті спроби виділити синтаксис деякі рядки можуть стати смішними з великим рядком рядка. У цьому випадку я використовую набір synmaxcol = 2048 для обмеження виділення синтаксису до 2048 стовпців.

Я також дуже прихильник плагіну тегів, який використовує насичені теги. Поки що мені вдалося розігнати скомпільовані двотактні коди, і я не стикався з жодними проблемами бібліотеки. Це швидко дозволяє мені переходити до будь-якого коду, з яким я працюю. Це, як правило, Perl, Python або C.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.