Які найкращі засоби програмування загального призначення для доповнення Vim? [зачинено]


22

Я вже трохи часу використовую Vim як мого текстового редактора, і мені здається, що я проходжу довгий шлях, щоб щось зробити. Я використовую ctags, щоб позначити базу коду для навігації, і я використовую grep (хоча і неефективно), щоб знайти, де використовуються певні методи. Але я маю відчуття, що є кілька дуже корисних інструментів, які я не знаю про це, що могло б зробити мене більш продуктивною.

Який найкращий стек програмного забезпечення, який я міг би використовувати для загального програмування, який доповнив би Vim? Як ви орієнтуєтеся в кодовій базі, виконайте внесення, натисніть на зміни до системи управління джерелом тощо? У вас відкрита друга консоль поруч із Vim?


2
Вим сам. Можливо, ви не використовуєте для роботи правильних плагінів / скриптів. Це залежить від того, яким ти програмуванням займаєшся, якою мовою, які ще потрібні інструменти тощо.
бітек

Я не вказую жодної мови, щоб не впливати на відповіді, які я отримаю. Я не дуже шукаю плагіни Vim, хоча вони корисні.
Луї Салін

Цю презентацію я вважаю дуже корисною: zmievski.org/2010/06/vim-for-programmers-on-slideshare
gabe.

Я зробив це вікі спільноти. Я зрозумів, що немає єдиної найкращої відповіді на моє запитання. Дякую всім за відповіді!
Луї Салін

Відповіді:


8

Чудовою особливістю vim є простота інтеграції до існуючих команд оболонки. Деякі з найбільш корисних зовнішніх інструментів є ті, які включені в Coreutils і інших простих інструментів тексту maniplulation. Наприклад, ми можемо отримати кількість рядків у файлі за допомогою:

:! wc -l %

або кількість слів:

:! wc -w %

Тут працюватиме будь-яка команда, яка працює на оболонці. Це може бути потужно поєднано з командою :read( :r) для введення виводу команди у файл. Наприклад:

:r !wc -l %

Вмістить кількість рядків слів у файл, який ви редагуєте.

Ще одна перевага цього - це заміна тексту, який ви зараз редагуєте, на вихід однієї з цих команд. Наприклад, ви можете відформатувати весь файл par, виконавши команду:

:% !par

5

Я вважаю NERDtree незамінним для навігації по своїй кодовій базі. Поряд із цим, вкладати певний час, щоб стати досвідченим пересуватися вашими буферами / вікнами, справді варто.


+1 для посилання на цей фантастичний плагін. ( github.com/scrooloose/nerdtree )
noffle

4

Якою б мовою ви не хочете використовувати функцію, яка називається ctags, яка дозволяє переглядати визначення джерел. Для цього потрібен зовнішній інструмент для генерації TAGS-файлів, які використовуються VIM для виявлення розташування різних визначень коду в проекті.

Отримайте розкішний інструмент ctags , він працює на багатьох багатьох мовах і v простий у використанні.

від VIM :help ctags

ctags створить індекс усіх ідентифікаторів у вихідному дереві. Потім ви можете використовувати команди тегів для навігації по вихідному дереву. див :help tag-commands. Найпростіше - помістити курсор на ключове слово і натиснути CTRL- ]. Щоб повернутися туди, куди ви прийшли з преси CTRL-T

Крім цього, можливо, ви захочете ознайомитися з деякими порадами та покращеннями VIM, обговореними тут , це дуже всебічне обговорення деяких речей, ніж можна зробити для покращення досвіду віммеру.


У своєму запитанні я згадував, що використовую ctags, але все одно дякую за відповідь! :)
Луї Салін

4

Vim - це дуже потужний інструмент, я впевнений, що ви все це вже знаєте. Ви почнете збільшувати продуктивність, використовуючи vim протягом декількох тижнів. Але ти ніколи не наситиш свої знання про Вім. Отже, я завжди шукаю нових та ефективних способів робити справи у Vim. Є хлопець на ім’я Дерек Вайятт, який зробив чудові екранні екрани щодо використання Vim, а також плагінів, якими він користується.

Кілька плагінів, якими я користуюся

  1. command-t Це робить перегляд файлів вітер, і це дуже розумно .

    Плагін Command-T забезпечує надзвичайно швидкий, інтуїтивний механізм відкриття файлів з мінімальною кількістю натискань клавіш. Він названий "Command-T", тому що його надихає вікно "Перейти до файлу", пов'язане з Command-T у TextMate.

  2. fuzzyfinder Я використовую це здебільшого для перегляду буферів та зміни поточного каталогу.

    FuzzyFinder пропонує зручні способи швидко дістатися до потрібного буфера / файлу / команди / закладки / тегу. FuzzyFinder здійснює пошук за нечітким / частковим малюнком, в який він перетворив введений шаблон

  3. NERDTree Це найкращий плагін браузера файлів для vim.

    Дерево NERD дозволяє досліджувати вашу файлову систему та відкривати файли та каталоги. Він представляє вам файлову систему у вигляді дерева, яким ви маніпулюєте за допомогою клавіатури та / або миші. Це також дозволяє виконувати прості операції з файловою системою.

  4. XPTemplate Найкращий плагін для шаблонів у світі.

    Двигун фрагментів коду для Vim, з бібліотекою фрагментів. XPTemplate дозволяє писати коди плавно, швидко та зручно.

  5. rails.vim Якщо ви робите рейки для розробників, це обов'язково.

    TextMate може бути останнім захопленням для розробки додатків Ruby on Rails, але Vim - це назавжди. Цей плагін пропонує наступні можливості для розробки додатків Ruby on Rails.

  6. NerdCommenter Легко коментує будь-який код.

І це лише деякі з плагінів , які я використовую, щоб завантажити всі плагіни з моїм vimrc, перевірка моїх точкових файлів


3

Існує чудовий плагін для VIM, який робить перевірку синтаксису Syntastic . Є багато інших інструментів, а також для управління файлами, побудови тощо. Перейдіть до IRC #vim на freenode.net, там є багато корисних людей.


3

мій улюблений - це скаскоп. Якщо ви зібрали vim із підтримкою cscope, ви можете безпосередньо скористатися командами cscope від VIM. наприклад, пошук включених файлів, функцій, викликаних функцією xyz, і т. д. Я спробував це з дуже великим сховищем вихідного коду. Це дуже допомагає.

http://cscope.sourceforge.net/cscope_vim_tutorial.html


1

Якщо ви програмуєте на будь-якій з мов, які підтримуються GCC (C, C ++, Java, Fortran), то Clewn - це чудовий плагін, який інтегрує налагоджувач GDB у VIM. Я фактично виявив, що це один з найкращих інтерфейсів GDB, який існує.


0

Зазвичай я встановлюю screenсеанс для кожного проекту. Vim знаходиться у вікні 0, і я використовую вікно 1 для сеансу оболонки. Якщо я кодую мовою, яка має гідну REPL, я зазвичай запускаю її у вікні 2. Звичайно, вам це не потрібно screenробити; ви можете зробити це з різними вікнами терміналів або з вкладками в багатотавковому терміналі. Я вважаю screenсебе більш стабільним, ніж інші альтернативи: якщо ваш термінальний додаток виходить з ладу, ви можете просто запустити інший термінал і підключитися до все ще запущеного screenсеансу. screenтакож дуже швидко орієнтуватися, як тільки ви дізнаєтесь це (як і сам vim).

Я здебільшого використовую сеанс оболонки для складних заходів контролю версій, таких як перезапуск або об'єднання: простіші речі можна зробити з командного рядка vim (наприклад, :!git commit % -m 'Added info aboutекран .') або за допомогою втікача аддона. Я вважаю втікачів :Gmove(перейменування поточного буфера як у vim, так і в індексі git) та :Gdiff(виклик vimdiff у поточному буфері з попереднім пунктом його історії) особливо корисним. Ви також можете робити такі речі, як складання повідомлення про фіксацію в буфері нуля, копіювання тексту з різних частин коду, а потім здійснення:%!git commit -F /dev/stdin

Я також використовуватиму сеанс оболонки для тестування функціональності / інтеграції, якщо це стосується того, над чим я працюю, наприклад, якщо я пишу утиліту командного рядка.

Функція швидкого виправлення Vim корисна для налагодження, хоча, здається, потрібен інший додаток для кожної мови, над якою ви хочете працювати. Вони також, здається, використовують різні методи виклику, відображення функціональних клавіш або послідовності клавіш, починаючи з \або ,, або до спеціальних команд, або автоматично викликається при збереженні буфера. До сих пір я не намагався це здати, а просто прочитав тест одиниці чи промацував результати в буфер подряпин, використовуючи напр :r !python -m doctest whatever.py. Змініть код, поверніться до буфера подряпин, uскасуйте, потім натисніть :rта стрілку вгору (більшу частину часу), щоб повернути цю команду. Але, можливо, варто витратити час на пошук додатка для цього, залежно від мови, якою ви працюєте.

Для таких популярних мов, як C, java тощо, :makeбуде складено збір, і підтримка списку швидких виправлень налагоджена. Тоді ви можете зробити це :copenдля відображення буфера швидкого виправлення. Він покаже список помилок, по одній на рядок; натискання Enterна рядок перекине ваше інше вікно до тієї точки цього файлу.

Якщо ви працюєте з декількома проектами одночасно, ви можете :lmakeдомовитись про те, щоб список помилок зберігався у списку місцеположень : це як список швидких виправлень, але пов’язаний з одним вікном, а не як синглтон у вашому екземпляр vim :lopenвідкриє список місцеположень для поточного вікна.

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