понедельник, 28 июня 2010 г.

Немного о vim и забывчивости.

Знакома ли вам следующая ситуация: вы открыли в vim какой-то системный конфиг, ну например /etc/hosts, радостно его правите, потом делаете:
:w
и видите радостное сообщение о том, что у вас не достаточно прав! Тут то память вам и подсказывает, что вы балбес, и что надо было делать не vim /etc/hosts, а sudo vim ... знакомо? ;) Увы, мне очень даже знакомо. Но вот блуждая по инету случайно наткнулся на маленький, простой, но гениальный (впрочем как и все в юникс подобных системах) "воркэраунд"! :) И так, встречаем нашего маленького спасителя:
:w !sudo tee %
Вот собственно и все. ;) Всем удачи и поменьше забывчивости. :)

P.S. За "типс" спасибо Juliet Kemp.

3 комментария:

  1. Т.ж. можно в ~/.vimrc добавить такую вот строчку:

    command Wsudo set buftype=nowrite | silent execute ':%w !sudo tee %' | set buftype= | e! %

    В принципе это одно и тоже, но так, имхо, удобнее. Просто вводим в командном режиме vim'а:
    :Wsudo
    и сохраняем файл от рута (TAB работает).

    ОтветитьУдалить
  2. Можно сделать по-другому. sudoers редактируется с помощью visudo (так рекомендуется). Нужно присвоить переменную окружения VISUAL=vim (или другой любимый текстовый редактор).

    ОтветитьУдалить
  3. 2see to learn: тут речь не о том несколько. :) Указанная вам переменная будет выставлять нужный редактор при запуске visudo. Прочтите еще раз пост, что бы понять о чем говорим. ;)

    ОтветитьУдалить