|
32 / 32 / 17
Регистрация: 10.10.2012
Сообщений: 88
|
|||||||||||||||||||||||||||||||||||||||||
VIM в качестве легкой IDE28.11.2012, 16:19. Показов 20949. Ответов 25
Я решил создать эту тему, потому что когда я начал программировать с помощью VIM, у меня возникли вопросы, ответы на которые приходилось искать довольно долго. Надеюсь эта статья поможет новичкам открыть для себя этот прекрасный текстовый редактор и настроить его так, что бы работа в нем была комфортной.
Установка VIM (хотя обычно VIM устанавливается в время установки ОС): Кликните здесь для просмотра всего текста
Для установки VIM введите в терминале:
Open suse:
Вот как VIM выглядит у меня: Данная тема для тех, кто хотя бы ненмого умеет работать в VIM (немного, это значит умеет хотя бы выйти из него сохранившись, и знает как перейти в режим редактирования текста), в противном случае введите в консоли команду:
Так выглядит VIM у меня: Однако вы его можете настроить так, как удобно вам. Установленные у меня плагины: Taglist - с этим замечательным плагином навигация по коду заметно облегчается. Установка taglist: Кликните здесь для просмотра всего текста
Полная установка плагина описана на его странице: http://www.vim.org/scripts/scr... ipt_id=273 (там же его можно скачать). Но для наглядности напишу, как их устанавливал я:
1. Скачиваем плагин. 2. Распаковываем любым удобным для вас способом 3. Копируем плагин (файл с разрешением .vim) в директорию /usr/share/vim/vim73/plugin
Вот и весь процесс установки. Нетрудно, правда? ![]() Больше я никакими плагинами не пользуюсь, однако плагинов огромное количество, более того, в VIM встроен мощный язык, на котором вы сами сможете писать плагины. Теперь перейдем к настройке vimrc. Редактировать его вы можете любым удобным для вас способом. Для редактирования в VIM введите в консоли:
Для примера приведу свои настройки vimrc p.s. Если перед командой стоят ковычки, то значит эта команда отключена (тоесть закомментирована) Основные настройки Кликните здесь для просмотра всего текста
"set number " нумерация строк
set bs=indent,eol,start " backspace без глюков set nocompatible " несовместимость с VI set wrap " включаем перенос строк set linebreak " перенос по словам, а не по буквам set showcmd " просмотр выполняемой команды в правом нижнем углу set ruler " показывать строку с позицией курсора syntax on " подсветка синтаксиса set mouse= " отключение мыши set showmatch " показывать первую парную скобку после ввода второй "set showtabline=2 " всегда показывать строку вкладок "set laststatus " всегда показывать строку статуса set title " показывать имя буфера в заголовке терминала set confirm " использовать диалоги вместо сообщения о ошибках set statusline=%<%f%h%m%r%=format=%{&filefor mat}\ file=%{&fileencoding}\ enc=%{&encoding}\ %b\ 0x%B\ %l,%c%V\ %P " включение дополнительной информации о статусной строке set visualbell " мигание вместо звукового сигнала set hidden " не выгружать буфер при переключении на другой файл set t_Co=256 " использовать больше цветов в терминале set background=dark " задаем фон терминала, влияет на подсветку синтаксиса set smartindent " включаем умную автоматическую расстановку отступов set autoindent " наследовать отступы предыдущей строки set tabstop=4 " размер табуляции set shiftwidth=4 " размер сдвига при нажатии на клавиши < или > set cursorline " подсветка текущей строки "set autoread " автоматическое перечитывание файла при изменении set pastetoggle= " сохраняет отступы при вставке фрагмента "set splitbelow " разбивать окно горизонтально снизу "set splitright " разбивать окно вертикально справа set foldmethod=syntax " фолдинг (сворачивание блоков кода) (zc - свернуть, zo - развернуть) "set completeopt=longest,menuone "автодополнение Настройки поиска: Кликните здесь для просмотра всего текста
set nohlsearch " отключение подсветки найденного выражения
set smartcase " поиск с учетом регистра set nowrapscan " останавливать поиск при достижении конца файла set history=150 " история команд set undolevels=1000 " история правок set infercase " предлагать авто-дополнения на основе уже введенного Swap и Backup файлы Кликните здесь для просмотра всего текста
" set noswapfile " отключение создание swap файлов
" set dir=~/.vim/swap/ " все файлы swap будут помещаться в эту директорию " set nobackup " отключение создания бекапов (если свет вырубят, повеселишься) Кодировки, горячие клавишы и прочее Кликните здесь для просмотра всего текста
" if has("unix")
" language en_US.UTF-8 " использовать анлийскую локаль на любой системе " endif " set encoding=utf-8 " кодировка по умолчанию " set termencoding=utf-8 " " set fileformat=unix " формат файла по умолчанию " set wildmenu " показывать все возмодные кандидаты для выбора при авто-завершении команд " set wcm=<TAB> Биндинги, команды и прочее (с объяснением) Кликните здесь для просмотра всего текста
" Небольшое объяснение по синтаксису мапинга
" map последовательность_клавиш действие " " Клавиши: " " Shift: <S-...> " Ctrl: <C-...> " Meta: <M-...> " Alt: <A-...> " " Пример: map <S-s>k dd //в этом примере последовательное нажатие Sk удалит строку " " <F1>...<F12> " " Enter: <CR> или <Enter> или <Return> " Пробел: <Space> " Esc: <Esc> " " РЕЖИМЫ " " Normal: режим ввода команд " " Visual: режим “визуального” выделения блоков текста, к которым затем применяются команды Normal режима " " Operator-pending: режим, в котором Vim ожидает дополнительного “поясняющего” ввода (например после " нажатия клавиш “d”, “y”, “c”, и т.п.). " " Insert: режим непосредственной вставки текста " " Command-line: режим, в котром находится редактор после нажатия клавиш “:” или “/” " " Lang-Arg: режим поиска " " ОБЛАСТЬ ДЕЙСТВИЯ ЗАБИНДЕННЫХ КЛАВИШ " "map " Normal, Visual, Operator-pending "map! " Insert, Command-line "nmap " Normal "vmap " Visual "omap " Operator-pending "cmap " Command-line "imap " Insert "lmap " Insert, Command-line, Lang-Arg map <C-c> y<CR> "позволяет копировать текст нажатием Ctrl+c map <C-v> p "позволяет вставлять текст нажатием Ctrl+v imap <C-v> <ESC>pi "тоже вставка текста, только в режиме редактирования vmap <C-c> y<CR> "копирование текста, только в визуальном режиме "следующие четыре мапинга позволяют переключаться между открытыми в VIM'e окнами нажатием alt+стрелки map <A-Left> <C-w><Left> " map <A-Right> <C-w><Right> " map <A-Up> <C-w><Up> map <A-Down> <C-w><Down> "это биндинги для фолдинга. позволяют свертывать/разворачивать код в обычном режиме нажатием -/+ map + zo map - zc "эти биндинги для меню. благодоря этим биндингам можно нажатиями F1, F2, F3, F4 вызывать различные меню set wildmenu set wcm=<Tab> menu Taglist.Open/Close :TlistToggle<CR> "открытие taglist menu Taglist.Reload :w<CR><C-w><Left>u <C-w><Right> "обновление taglist menu Folding.Open zo "открыть свернутый код menu Folding.Close zc "скрыть развернутый код menu Folding.Open_all zR "открыть все свертки menu Folding.Close_all zM "закрыть все свертки menu File.Save :w<CR> "сохранение файла menu File.Load_new_window :sp +Explore<CR> "запуск встроеного файлового менеджера в новом окне menu File.Load_and_save :w<CR> :Explore<CR> сохранение и запуск файлового менеджера menu File.Load :Explore<CR> "запуск файлового менеджера в новом окне menu File.Exit_and_Save :wq<CR>:q!<CR>:q!<CR>:q!<CR>:q!<CR>:q!<C R>:q!<CR> "полный выход и сохранение menu File.Exit :q!<CR>:q!<CR>:q!<CR>:q!<CR>:q!<CR>:q!<C R>:q!<CR> "полный выход без сохранения menu Project.Compile :w<CR>:!clear;g++ %<CR> "компиляция проекта (С++) menu Project.Run :w<CR>:!clear;./a.out<CR> "запуск проекта menu Project.Debug :w<CR>:!clear;gdb a.out<CR> "отладка проекта с помощью GDB "мапинги длля вызовов меню map <F1> :emenu File.<Tab> map <F2> :emenu Project.<Tab> map <F3> :emenu Taglist.<Tab> map <F4> :emenu Folding.<Tab> imap <F1> <ESC>:emenu File.<Tab> imap <F4> <ESC>:emenu Folding.<Tab> imap <F2> <ESC>:emenu Project.<Tab> imap <F3> <ESC>:emenu Taglist.<Tab> vmap <F1> <ESC>:emenu File.<Tab> vmap <F4> <ESC>:emenu Folding.<Tab> vmap <F2> <ESC>:emenu Project.<Tab> vmap <F3> <ESC>:emenu Taglist.<Tab> Надеюсь эта статья оказалась полезной для вас. Если вы найдете в ней ошибки или неточности пишите, буду исправлять.
5
|
|||||||||||||||||||||||||||||||||||||||||
| 28.11.2012, 16:19 | |
|
Ответы с готовыми решениями:
25
VIM как IDE для Python [Mono] C# в Linux. Что используется в качестве IDE obj\Debug\IDE.o||In function `Z11OpenProjectv':| C:\tsserver\Projects\cpp\codeblocks\MyComp\IDE\IDE\IDE.cpp|2 36|undefined reference to `GetOpenFileNam |
|
1269 / 981 / 386
Регистрация: 02.09.2012
Сообщений: 3,030
|
|
| 03.01.2016, 15:30 | |
|
1
|
|
|
72 / 72 / 5
Регистрация: 10.02.2013
Сообщений: 434
|
|
| 05.01.2016, 10:27 | |
|
YouCompleteMe великолепный плагин. Удивился, не найдя упоминания о нем.
А vim на деле лучше даже Visual Studio с Resharper. Про CLion я не говорю даже - он ужасен ![]() Сейчас сижу под виндоус и скучаю ![]() Добавлено через 47 секунд для нормальной отладки есть cgdb
0
|
|
|
4 / 4 / 0
Регистрация: 04.04.2015
Сообщений: 174
|
|||
| 09.01.2016, 18:40 | |||
![]() Добавлено через 20 часов 1 минуту Столкнулся со следующей проблемой: попробовал задать копирование выделенного текста в буфер обмена с помощью комбинации клавиш Ctrl C (при режиме вставки), для чего прописал в .gvimrc: xnoremap <C-c> "+y Но при запуске редактора выдаётся сообщение:
0
|
|||
|
Полярный
477 / 449 / 158
Регистрация: 11.09.2011
Сообщений: 1,156
|
||||||||||
| 12.01.2016, 03:22 | ||||||||||
|
watersoda,
Ответ на подобный вопрос от Gary Willoughby
1
|
||||||||||
|
4 / 4 / 0
Регистрация: 04.04.2015
Сообщений: 174
|
||||
| 03.09.2016, 15:22 | ||||
|
Убедительная просьба помочь разобраться со следующими настройками для VIM (очень хочется понимать что к чему, а не использовать опции вслепую):
)? Заранее спасибо за разъяснения.
0
|
||||
|
694 / 304 / 99
Регистрация: 04.07.2014
Сообщений: 851
|
||
| 05.09.2016, 12:03 | ||
i способы входа в режим редактирования (o, O, A, ...). Чего только стоит использование . в комбинации с ними.Добавлено через 5 минут З.Ы.: Интересное чтиво про режим редактирования: https://habrahabr.ru/post/307084/
0
|
||
| 05.09.2016, 12:03 | |
|
каким образом пожна подключить на мать с 2 IDE выходами и 2 SATA 3 жестких диска IDE и 2 CD-ROM IDE? Новая мать не видит ide ЖД и ide привод, проблема в Sata - Ide контроллере? C:\tsserver\Projects\cpp\codeblocks\MyComp\IDE\IDE\IDE.cpp|1 5|error: 'InitApplication' was not declared in this scope| C:\tsserver\Projects\cpp\codeblocks\MyComp\IDE\IDE\IDE.cpp|3 9|undefined reference to `GetStockObject@4'| Потеря доступа к логическому разделу после смены IDE-AHCI-IDE Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла:
Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
|
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет
Новости компьютерного мира и их обсуждение (4)
Салют, шампанское, овации!
:drink:
|
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр.
Дословно, отклонённая. . .
|
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы
Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
|
|
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
|
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2.
Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
|
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
|
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
|