LINUX.ORG.RU

Getting to know Vim


0

0

Вот пытаюсь перейти на Vim. Тяжеловато поначалу. Но удобность замечается уже сразу. Но пока непривычно. Хотя после целого дня ковыряния в проге для диплома, пальцы вроде постепенно затачиваются под него. Очень удобно перемещение курсора с помощью h,j,k,l, так как набираю вслепую. :) Народ, подскажите, если кто видел, где можно найти краткое описание всех команд по типу КОМАНДА - ОПИСАНИЕ? Ну, типа, шпаргалку. Тока чтобы не только основные команды перемещения, а ВСЕ? И желательно в одном документе. Для емакса такую хрень я видел, а вот для vim'a найти не могу :(.

Диплом у меня - пишу интерпретатор Паскаля на Jave (использую YACC, Lex модифицированные для генераци кода на Java). Это все будут юзать школьники при обучении программированию. Предполагается прикрутить в будущем к этому компилятору графический модуль и проводить обучение по методу т.н.з. абстрактных исполнителей - школьник пишет прогу на паскале, а рядом в окошечке исполнитель выполняет его команды - закрашивает квадратики, перемещается итд :). Вот.

>>> Просмотр (1024x768, 71 Kb)



Проверено: maxcom

точно была такая шпоргалка для вима в инете, кажется даже на русском, к сожелению, не могу найти ссылку.
Но тоже самое есть большинстве книг по администрированию или для "чайников" в Linux or Unix

Niki
()

а на фига столько окошек пооткрывал ?
прочитай про буферы и так далее imho удобнее будет

Niki
()

ну для подобного обучения imho Logo гораздо лучше подходит... да и вообще интерпретатор (???) паскаля? он сроду компилируемым был.. да еще и на жабе... это все равно что операция на гландах через зад :)) а для написания подобной документации LaTeX гораздо лучше подходит - выбрал шаблон и набирай себе, не парясь с оформлением, только структурируй текст и все. И на выходе не plain text (непонятно, что ты с ним далее делать будешь?) а вполне себе приличного качества ps/pdf, который можно нормально напечатать. Ну про автоматическую генерацию оглавления, сноски и прочее я и не говорю... так что imho vim для этого - не тот инструмент

anonymous
()

2anonymous (*) (2003-03-17 15:41:29.965)

Ну... Школьников-то планируется обучать основам программирования с дальнейшим переходом именно на Паскаль. Мы тоже сначала хотели создать Лого-подобный язык, но потом научник все-таки решил, что это будет Паскаль. Он уже написал интерпретатор, но тока на Дельфи. К тому же он будет иметь полную поддержку процедур, функций, var-параметров итд - для более глубинного изучения именно Паскаля, после обучения основам.

Кстати, это будет не чистый интерпретатор, а некоторая помесь :). Ошибки соответствия типов и подобная лабуда выдается до начала выполнения программы. То есть получается, что есть два типа ошибок - compile time & run time. Во всяком случае, некоторое их подобие.

К чему это ты про Латех начал, я честно говоря вообще не понял :). Или это ты про мой "changelog"? Так это вообще наброски - чтобы не забывать чего сделать надо :). Мне для этого Латех вообще не нужен. :)

2Niki : Прочитаю, просто пока времени на мануал совершенно нету - пишу диплом денно и нощно - не успеваю :). А если ту шпору найдешь, кинь линк, ладно? Большое спасибо скажу :).

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

<quote> а для написания подобной документации LaTeX гораздо лучше подходит ... <skipped> ... так что imho vim для этого - не тот инструмент </quote>

Понял? Для переезда из Москвы в Питер лучше всего использовать автомагистраль... BMW для этого херово подходит..

anonymous
()

2Роман: Спасибо огроменющее - это именно оно!!! :) 2anonymous (*) (2003-03-17 16:20:12.825) Я ж и говорю, я не понял - для КАКОЙ документации? Для cangeloga? Если да, то см. раньше :).

sdk
() автор топика

Да хохма про то, что vim не подходит для работы с LaTex - это улет.

Наверное писал закоренелый поклонник emacs, который и vi видел последний раз в 80-лохматом году.

anonymous
()

VIM рулез форева! ;-))
Но есть два НО:
Зачем искать список всех команд на стороне когда все уже есть :h index.txt
Ну и конечно зачем открывать столько окон когда есть буферы(ведь они работают и в консоли) :h buffers
если вкратце то
:sf <имя> - редактирование
:sn <имя> - новый
:sv <имя> - на чтение
и т.д
CTRL-W + <команда> - переключение, изменение размеров, закрытие и т.д

Ну а главное конечно понять всю замечательную идеологию этого редактора - это будет полезнее чем просто тупо запоминать команды и комбинации. :-)

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

> Ну и конечно зачем открывать столько окон когда есть буферы(ведь они работают и в консоли) :h buffers

Консоль - это конечно хорошо, но когда работаешь в X может имеет смысл пользоваться сервисами WM (иначе для чего он вообще нужен?), а не дублировать (хорошо или плохо - не важно) его функциональность? Есть ли возможность работать с разными буферами vim в разных _X_ окнах? Интересная была бы возможность...

anonymous
()

Сейчас уже все могут себе позволить держать в памяти либо JDeveloper либо Intellij Idea. Я конечно понимаю, что труе программеры всё делают только а эмаксе или виме, и программят даже не касаясь мыши, но всё таки нормальный ИДЕ гораздо удобнее и приятнее.

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

> Сейчас уже все могут себе позволить держать в памяти либо JDeveloper либо Intellij Idea.

Сейчас уже все имеют возможность есть дерьмо ((с) - не помню) и что?

> Я конечно понимаю, что труе программеры всё делают только а эмаксе или виме, и программят даже не касаясь мыши,

Ну тык.

> но всё таки нормальный ИДЕ

Где вы такие видели? (hint: .nix - это и есть IDE)

> гораздо удобнее и приятнее.

Кому? И в чем?

anonymous
()

а помему все забыли про vimtutor? самый лучший способ изучить vim с самого начала.

anonymous
()

Vimtutor я уже прошел - без него бы я вообще бы не смог хоть как-то работать :). А буферами займусь в ближайшее время. А IDE мне и не нужен - мне хватает функциональности обычных (или не очень :)) текстовых редакторов. И удобства тоже хватает. Кому не хватает, пусть ищут :).

Про :h index я не знал :). Щас сижу в мастдае - буду в линуксе, тогда попробую.

sdk
() автор топика

"шпоргалка"... Ники, иди учиться в школу, а не просиживай заднику в инете...

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

Тут про джаву был начат разговор. Нормальный ИДЕ для джавы - это JDeveloper, Eclipse, Intellij Idea. Их приятно пользовать, потому что большая часть рутинной работы отпадает сама собой, что экономит кучу времени. Зачем так заморачиваться с шорткеями? У меня например нету музыкального образования, на пианино играть не умею. Лишний раз жать кнопки удовольствия не приносит :) Я ткну на менюшку и сделаю рефакторинг что занимает 3-4 клика. Попсово? По-ламерски? По-вижуалбэйсиковски? Нет :) Время - деньги.

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

> Тут про джаву был начат разговор. Нормальный ИДЕ для джавы - это JDeveloper, Eclipse, Intellij Idea.

Это прописано в законе?

> Их приятно пользовать, потому что большая часть рутинной работы отпадает сама собой, что экономит кучу времени.

А в vim это не так?

> Зачем так заморачиваться с шорткеями?

В смысле?

> У меня например нету музыкального образования, на пианино играть не умею.

Не страшно.

> Лишний раз жать кнопки удовольствия не приносит :)

А вот это - бяда. Клавиатуру выдумали не (ч|м)удаки и не маркетоиды.

> Я ткну на менюшку и сделаю рефакторинг что занимает 3-4 клика.

Если вы отличаетесь такой четкостью мысли, что вам мешает то же самое сделать с клавиатуры (или полностью автоматически), не доводя пробег мыши до сотен километров (и без ежеминутного упражнения на точность попадания мышой по цели размером в 12-14px)? Или вы выстукиваете команды на кнопке мыши азбукой Морзе?

> Попсово? По-ламерски? По-вижуалбэйсиковски? Нет :) Время - деньги.

Докажите. Можете рассматривать пред. пост (может быть несколько экстремистский), как попытку раскрутить вас на подробное описание преимуществ JDeveloper(так пишется?). Вдруг и вправду в нем (JD...) что-то полезное есть.

anonymous
()

Во, адепты...

Уже много писалось про object-completion в Виме, более того
болтались ссылки на какие-то плагины для осуществления этого
волшебства... Однако на проверку опробованные мной вели
себя подобно невесткам из сказки о царевне-лягушке: руками машут,
а летят одни объедки...

Уважаемые многомудрые аксакалы, подскажите мне недалекому,
где же они надежно припрятаные работоспособные плагины, а
то мне одни рвотоспособствующие попадаются.

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

Преимущества мышки над клавиатурой при работе в текстовом редакторе: 1) быстрее поставить курсор в любую точку кода( проскроллив не одну страницу) 2) быстрое выделение текста и перетаскивание

Пробег мышки это фигня, чувствительность можно поменять по вкусу, а попасть в квадратик 12-14 труда не составляет. Функциональность доступна и с клавиатуры - "ALT + *".

В интегрированных средах разработки мышью гораздо удобнее осуществлять навигацию по проекту и работать с CVS. И главное что это всё работает out of the box, потому что ребята из Оракл постарались. Не надо ни плугинов доставлять ни читать документацию, что какая кнопка делает.

Если уж не интерпретаторы писать, а веб приложение, то понадобиться полноценный дебаггер, и одним вимом тут уж точно не обойтись.

http://technet.oracle.com/products/jdev/htdocs/jdev9i902_fo.html Вот полный список фич JDevelopera Из них я постоянно пользуюсь Integrated SQL and PL/SQL Support, Integrated support for Oracle9iAS Containers for J2EE (OC4J).

Вим штука хорошая, я не спорю :) но это для консольки .. файлик там открыть, буковку подправить и закрыть. Это же просто редактор, который немного адвансед.

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

2Wotson

А оно вам надо? Или это пожелание из разряда "саблю, будённовку и велосипед"?

Ведь возможны две ситуации:

1. Влом набирать длинное имя - но тут справляются и обычные (не контекстно-зависимые) "completion"'ы.

2. Вы нечетко себе представляете какой метод дергаете (раз не знаете даже как он пишется) и хотите, чтобы редактор выпрямил вам ручки. Но тогда вы уверены, что вообще стоит что-то набирать?

anonymous
()

Прикалывают люди которые переходят с емакса в вим или обратно (или еше откуда), ну привык в одном и пользуйся. Зачем переучиватся на савсем другой стиль работы ради сомнительных волшебных возможностей нового редактора?

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

> Преимущества мышки над клавиатурой при работе в текстовом редакторе: 1) быстрее поставить курсор в любую точку кода( проскроллив не одну страницу)

Ха, вы не знаете возможностей vim. По быстроте и _точности_ перемещения курсора мышь по сравнению с ним - фуфло.

> 2) быстрое выделение текста и перетаскивание

То же самое + что, программируем в стиле copy&paste?

> Пробег мышки это фигня, чувствительность можно поменять по вкусу, а попасть в квадратик 12-14 труда не составляет.

Только если ежедневно по нескольку часов тренироваться на варкрафте и тому подобных диаблах. (Ну или на виндовом гую - тоже хорошая игрушка, стратегия кажется).

> Функциональность доступна и с клавиатуры - "ALT + *".

Какая функциональность?

> В интегрированных средах разработки мышью гораздо удобнее осуществлять навигацию по проекту и работать с CVS.

Нда? А поподробнее?

> И главное что это всё работает out of the box, потому что ребята из Оракл постарались. Не надо ни плугинов доставлять ни читать документацию, что какая кнопка делает.

Документацию не надо читать? Ладно, что тогда делает кнопка F7 и почему мне это должно быть понятно? В генах заложено?

> Если уж не интерпретаторы писать, а веб приложение, то понадобиться полноценный дебаггер, и одним вимом тут уж точно не обойтись.

:) Однако.

> http://technet.oracle.com/products/jdev/htdocs/jdev9i902_fo.html Вот полный список фич JDevelopera Из них я постоянно пользуюсь Integrated SQL and PL/SQL Support, Integrated support for Oracle9iAS Containers for J2EE (OC4J).

Да рекламных слоганов много. И очень завлекательно написано.

> Вим штука хорошая, я не спорю :) но это для консольки .. файлик там открыть, буковку подправить и закрыть. Это же просто редактор, который немного адвансед.

Насколько он адвансед - зависит от того сколько страниц из хелпа вы прочитали. IMHO.

anonymous
()

я тот ананимус что писал про LaTeX :) немного прогнал, извиняюсь :) Я в том смысле выражался, что документацию проще в латехе делать, а уж в каком редакторе - дело десятое (ну понятно что не во встроеном mcedit :) а по поводу Паскаля... хм... я все же не пойму - зачем его интерпретатор на жабе писать? и вообще, зачем его писать? поставить обычный компилятор и все :) Зыж еще одно замечание - то что ты описываешь как интерпретатор, более похоже на "интерпретатор компилирующего типа" - именно такой стоял в советских БК, например... токо бейсика, понятно... он сначала проверяет прогу на ошибки, ежели все ок, компиляет ее и начинает исполнять... ну и соответственно скорость поболее чем при runrime-интерпретации

anonymous
()

vim - хороший редактор, но один из его сильнейших недостатков это то что в нем нет lispа :)

lg ★★
()

По поводу компиляции/интерпретация Паскаля: поскольку Паскаль задумывался Виртом как язык, допускающий создание эффективного однопроходного транслятора, то создание в учебных целях этого транслятора в виде интерпретатора на мой взгляд вполне есстественно По поводу модификации YACC'a/lex'a для генерации исходников на java - на мой взгляд удобнее использовать antlr - он совмещает в себе и парсер и анализатор и генерит как раз java-код

anonymous
()

2anonymous c Oracle'ом и JDeveloper'ом:

>Если уж не интерпретаторы писать, а веб приложение

Уж постыдился бы. Ты в своем веб-приложении запросы
на естественном языке обрабатываешь? Наверное русский язык формальной
грамматикой представил и в байткод компилируешь для последующей
передачи абстрактным исполнителям? :)))))))

anonymous
()

>Преимущества мышки над клавиатурой при работе в текстовом редакторе: 1) быстрее поставить >курсор в любую точку кода( проскроллив не одну страницу)
Сдается мне вы еще и одним пальцем набираете текст :-)
А вот один из лучших туториалов по теме - никакой лишней информации, легкий стиль изложения http://rootus.org/docs/Unix/l-vi/ и в общем описывает главный принцип работы с редактором, написан кстати Дэниолом Робинсом, главой Gentoo

И вообще никто не говорит что vim это универсальное средство для всех и для всего. Но что касается работы и интерграции с Unix то тут ему равных нет.

P.S Для Java сам пользую NetBeans :-)

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

Веб приложение - это веб приложение, а самодельный интерпретатор тут и близко не лежал.

Кстати у меня в Виме кнопка F7 выводит красивую бяку "<F7>" :)

anonymous
()

2anonymous (*) (2003-03-17 22:23:06.686) а не пойти ли тебе куда подальше лесом и помолчать там ?! умник, блин.

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

to anonymous (*) (2003-03-18 03:02:25.519) >>2. Вы нечетко себе представляете какой метод дергаете (раз не знаете даже как он пишется) ....

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

И еще, по поводу code completion - как Вы считаете, что проще сделать для того чтобы получить полное название метода например getResultFooter() набрать "getRe", потом нажать ctr+space и получить getResultFooter(|) или набрать "getRe", а потом еще 12 раз стукнуть по клавишам, причем последние 2 раза с шифтом ?

Не знаю как для других, а для меня выбор очевиден.

Можно конечно управлять автомобилем крутя плоскогубцами рулевую колонку, а можно и руль прицепить.

anonymous
()

> я все же не пойму - зачем его интерпретатор на жабе писать? и вообще, зачем его писать? поставить обычный компилятор и все :)

Дык, надо же, чтобы его из инета можно было пользовать. Это ж все задумывается как удаленное обучение.

>еще одно замечание - то что ты описываешь как интерпретатор, более похоже на "интерпретатор компилирующего типа"

Скорее всего, так оно и есть :). Я не задумывался о том, как его назвать. :)

>>на мой взгляд удобнее использовать antlr - он совмещает в себе и парсер и анализатор и генерит как раз java-код

Не знаю, его не видел. Видел JavaCC. Он тоже содержит два в одном. Но у меня уже не хватит времени, если я начну все заново.

2SadStork, cyberian : Спасибо большое, гляну.

2anonymous (*) (2003-03-18 10:55:47.301)

>Веб приложение - это веб приложение, а самодельный интерпретатор тут и близко не лежал.

Да ты че! Ну попробуй-ка наваяй интерпретатор, а потом уже и кричи. Давай может сравним по времени? :) Ты начнешь писать интерпретатор - с поддержкой переменных (локальных и глобальных), циклов, процедур, функций, массивов, строк и всего (почти), что есть в Паскале, а я -- веб приложение. А потом посмотрим у кого жопа быстрее на британский флаг порвется от натуги. :)

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

> Если иметь мегамозги для того чтобы запоминать названия и сигнатуры _всех_ методов в проекте, то конечно никакой completion и не нужен, но если иметь человеческие мозги (только не надо называть меня тупым и недалеким придурком), то довольно проблематично запомнить названия и сигнатуры всех методов если этих методов в проекте десятки тысяч.

Если для нормальной работы вам нужно запоминать названия _всех_ методов в проекте - то вам никто не поможет. Удавите архитектора за такой проект.

> И еще, по поводу code completion - как Вы считаете, что проще сделать для того чтобы получить полное название метода например getResultFooter() набрать "getRe", потом нажать ctr+space и получить getResultFooter(|) или набрать "getRe", а потом еще 12 раз стукнуть по клавишам, причем последние 2 раза с шифтом ?

Проще (но вряд ли быстрее) первое. Но вы невнимательно читаете. Для указанной вами ситуации _контекстно-зависимые_ комплишны не нужны. Обычные (присутствующие в vim "из коробки") справятся в данном случае ничуть не хуже.

> Не знаю как для других, а для меня выбор очевиден.

Та же фигня.

> Можно конечно управлять автомобилем крутя плоскогубцами рулевую колонку, а можно и руль прицепить.

Но вы-то предлагаете управлять не крутя руль, а щелкая мышой. Рекомендую поискать по google приколы на тему "что было бы если бы машины работали под управлением Windows". Алан Голуб, например, по этому поводу неплохо написал.

anonymous
()

> Кстати у меня в Виме кнопка F7 выводит красивую бяку "<F7>" :)

Нашми пару раз Esc и это пройдет :)

А вот в JDeveloper ента кнопка выполняет столь важную и интуитивно-понятную роль, что не надо читать документацию. _Моя_ интуиция подсказывает, что нажав "F7 F6 F5 x y #" под JDeveloper я получу готовый интерпретатор паскаля на жабе. Ведь "ребята из Oracle' все уже настроили и установили.

anonymous
()

Нда, стало быть про object-completion никому и ничего неизвестно.
Это очень и очень жалль...

Wotson
()

Нда, стало быть про object-completion никому и ничего неизвестно.
Это очень и очень жалль...

Wotson
()

[i]vim - хороший редактор, но один из его сильнейших недостатков это то что в нем нет lispа :)[/i]

зато в нем есть tcl ;)

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