|
32 / 32 / 17
Регистрация: 10.10.2012
Сообщений: 88
|
|||||||||||||||||||||||||||||||||||||||||
VIM в качестве легкой IDE28.11.2012, 16:19. Показов 20792. Ответов 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 |
|
1264 / 978 / 384
Регистрация: 02.09.2012
Сообщений: 3,021
|
|
| 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 | |
|
Помогаю со студенческими работами здесь
26
каким образом пожна подключить на мать с 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 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|