LINUX.ORG.RU

Расскажите, как превратить vi в инструмент для разработки на C


0

1

Устав возиться с громоздкими IDE и желая как можно меньше зависеть от конкретной системы, возникло желание перейти в разработке на C в голый vi. Слышал, что в нём сам Торвальдс работает (интересно, правда ли это?).

Расскажите пожалуйста, как превратить его в нормальный инструмент с автодополнением, выпадающими меню с членами классов (структур) и прочими вкусностями, которые есть в современных IDE. Или Ъ этим всем не пользуются? (Хотя, мне бы хотелось, я уже разбаловался). Может есть какие-то материалы, что где почитать.

В принципе, послушал бы и про emacs. Но мне он как-то не очень, хоть я периодически делаю попытки его освоить - «душа не лежит».


> Слышал, что в нём сам Торвальдс работает (интересно, правда ли это?).

У Торвальдса допиленный MicroEMACS, если верить слухам.

geekless ★★
()

Никак. Если нужны все вкусности ide, значит брать нужно ide, а не текстовый редактор.

mashina ★★★★★
()

> Расскажите пожалуйста, как превратить его в нормальный инструмент с автодополнением, выпадающими меню с членами классов (структур) и прочими вкусностями, которые есть в современных IDE

Не нужно уродовать vi, специально для таких как ты есть «современные IDE».

Manhunt ★★★★★
()
Ответ на: Вы пришли посмеяться? от anarquista

vi это не vim, а в C нет никаких классов!

Понятно, что речь о vim, в нём много дополнительных возможностей. А что касается классов - струкруры, что по-Вашему?

maxkit
() автор топика
Ответ на: комментарий от maxkit

Не надо путать

Структуры в Си — это структуры. А вот структуры в Си++ — это классы с паблик доступом по умолчанию.

geekless ★★
()
Ответ на: комментарий от marvin_yorke

Но суть вопроса Вы ведь поняли, верно? Мне бы не хотелось мериться величиной плюсов, тему не для этого создавал.

maxkit
() автор топика
Ответ на: fix от o

очередной холивар vim vs emacs?

Занимаем места товарищи... ;-)

Я вот юзаю emacs но без всех энтих наворотов. Как то лишнее все это... простую ошибку синтаксиса увидишь сам, сложную найдет компилятор;-)

AIv ★★★★★
()

пишу свои проекты в vim+cscope/ctags+make на C. все устраивает.

на C++ зависит от запущености конкретного случая, в некоторых ситуациях получается, но в больших проектах с кучей быдлокода врядли.

дополнение кода: C-p, C-n, либо :h new-omni-completion

вкусности из современных ide не получатся. разве что прикручивать нечто вроде eclim.

Может есть какие-то материалы, что где почитать.

ты сначала начни писать что-то, со временем придет понимание чего не хватает, ну и оттуда начинай искать настройки/скрипты/плагины. можно еще в vim@cjr потусить :)

waker ★★★★★
()

Я Emacs сейчас использую для программирования, а Vim - как тестовый редактор. Плюшками IDE в Emacs'е не особо пользуюсь.
Если тебе нравятся плюшки, которые дают современные IDE, то и пиши в них, не парься.
Если все же хочется чего-то тру никсового, то советую смотреть в сторону Emacs.

Краткое сравнение Vim и Emacs:

-- Emacs

+ Более продвинутый, чем Vim.
+ Болше плюшек.
+ Есть поддержка кучи языков программирования/(внешних программ)
+ SLIME
- Динамичные фреймы - содержимое может ВНЕЗАПНО меняться.
+ Динамичные фреймы - автодоплнение, подсказки, хелп и все такое.
- Нет режимов
+ Нет режимов ))

-- Vim

+ Есть режимы.
- Есть режимы.
+ Статические табы.
+ Удобный командный режим.
+ Хороший хелп.
+ Хорошо и легко настраивается по хелпу.

Лично мне:
В Emacs удобнее программировать. (на Lisp'е особенно)
В Vim удобнее редактировать текст.

kermzyxer
()
Ответ на: комментарий от kermzyxer

> В Emacs удобнее программировать. (на Lisp'е особенно)

У меня проблема с набором пальцевыворачиваюших комбинаций.

Если вы может и похожи на вот такое существо:

http://bc.tech.coop/blog/images/emacs-fingers.png

То я больше похож на обычного человека.

В Vim удобнее редактировать текст.

Это потому, что vim - текстовый редактор. В отличие от...

anonymous
()
Ответ на: комментарий от kermzyxer

есть режимы - vimpulse поставь, и пусть какой-то вимер мне скажет чего не хватает в вимпульсе по сравнению с vim

anonymous
()
Ответ на: комментарий от Raving_Zealot

одновременное ажатие Ctrl + Meta + Shift + что-нибудь и подобные вещи

anonymous
()
Ответ на: комментарий от pevzi

из простого:

* компилировать, и одновременно править код, поглядывая в окошко quickfix

из сложного:

* искать определение класса или переменной, которая сделана через #define. пример

#define DEFINE_MY_VAR(name) void *g_p##name##Ptr;
DEFINE_MY_VAR(Name1);
DEFINE_MY_VAR(Name2);

visual assist такое позвозяет найти - пишешь g_pName1Ptr — и видишь соотв. строчку DEFINE_MY_VAR.

это две вещи которые сходу в голову пришли, без которых ковыряться в тонне (чужого) быдлокода нереально.

и еще всякого

* автоматически добавить импорты жабо-пакетов, как ctrl+shift+o в eclipse - не знаю как на жабе без этого быдлокодить.

с другой стороны, такого же хорошего текстового редактора, как vim, в этих ide нет и не будет. поэтому я частенько редактирую отдельные файлы в vim, т.к. в вижуале или (тем более) eclipse простейшее редактирование растягивается на полчаса-час, когда в vim пишется простейший макрос, и выполняется N раз :)

waker ★★★★★
()
Ответ на: комментарий от waker

>* компилировать, и одновременно править код, поглядывая в окошко quickfix

Вроде можно было

* искать определение класса или переменной, которая сделана через #define. пример

Можно, если правильно ctags настроить, и руки прямые

*автоматически добавить импорты жабо-пакетов, как ctrl+shift+o в eclipse - не знаю как на жабе без этого быдлокодить.

Жаба не нужна

ttnl ★★★★★
()
Ответ на: комментарий от anonymous

После того как я начал пользоваться emacs я достиг неплохих успехов в пенспининге!

Zubchick
()
Ответ на: комментарий от Obey-Kun

Но-но! Это к местным сайтостроителям, я тоже только сейчас внимание обратил... или это локальные настройки?

AIv ★★★★★
()
Ответ на: комментарий от ttnl

> Вроде можно было

не припоминаю такого

Можно, если правильно ctags настроить, и руки прямые

и как же?

Жаба не нужна

был бы рад ее никогда не видеть :)

waker ★★★★★
()

Спасибо большое, буду всё подробно изучать и смотреть. Возможно, стоит поближе присмотреться и к emacs'у. А всякие «вкусности», возможно, не стоят тяжести IDE типа Eclipse.

maxkit
() автор топика
Ответ на: комментарий от waker

>и как же?

С помощью ключика --regex-<любимый язык программирования>:

ctags --regex-c='/^DEFINE_MY_VAR\(([^)]*)\).*/g_p\1ptr/'

ttnl ★★★★★
()
Ответ на: комментарий от ttnl

не, это не выход.. это костыль. надо чтобы с любыми макросами работало, автоматически. макросов много, и постоянно новые появляются. так что нифига ctags не спасает.

waker ★★★★★
()
Ответ на: комментарий от waker

макросов много, и постоянно новые появляются. так что нифига ctags не спасает.

Завязывай с Си или меняй стиль коренным образом.

Xenesz ★★★★
()
Ответ на: комментарий от waker

а это здесь причем?

Если интесивно используешь макросы и внезапно (эрзац-)IDE перестаёт помогать, вспомни про то, что Си с препроцессором не поддаётся стопроцентному синтаксическому анализу. Сорри за голословность, но не вспомню даже где пробегала тема. Обозначена в UNIX-haters, кажись.

не обсуждаем кому как писать на си(++).

Может тебе это и не помешает, но я пытался тебя предупредить.

Xenesz ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.