Форум программистов, компьютерный форум, киберфорум
Python: IDE, инструментарий
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/26: Рейтинг темы: голосов - 26, средняя оценка - 4.62
-8 / 2 / 0
Регистрация: 21.04.2015
Сообщений: 23

VIM как IDE для Python

30.04.2015, 18:35. Показов 5294. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте ещё раз. Понимаю что эта тема не раз поднималась в интернете.
Большенство обсуждений безнадёжно устарели. Некоторые плагины перестали
поддерживаться а другие заменены на новые. Я напишу как настроен VIM у меня.
Хотелось бы обменяться опытом и узнать как у других людей.

Записи в виде:
Плагин - настройки для него в vimrc если нужны.

Идентификатор отступов.
Code
1
2
3
4
5
github.com/Yggdroot/indentLine
 
let g:indentLine_enabled = 1
let g:indentLine_color_term = 7
let g:indentLine_char = '|' " '·'
Комментирование выделенных строк.
Code
1
github.com/tomtom/tcomment_vim
Пока не придумал как заставить работить по удобной клавише,
только вчера поставил.

Запуск Shell из VIM.
Code
1
github.com/vim-scripts/Conque-Shell
Code
1
2
3
4
5
set wildmenu
set wcm=<Tab>
menu Terminal.Bash      :ConqueTermSplit bash<CR>
menu Terminal.Ipython   :ConqueTermSplit ipython<CR>
map <F11>               :emenu Terminal.<Tab>
Авто исправление синтаксиса.
Code
1
autopep8 github.com/tell-k/vim-autopep8
Automatically formats Python code to conform to the PEP 8 style guide
Тут нечего писать, можно только изменить хоткей
Code
1
autocmd FileType python map <buffer> <F8> :call Autopep8()<CR>
Проверка синтаксиса и стиля в питоне.
dev-python/flake8 A wrapper around PyFlakes, pep8 & mccabe
github.com/nvie/vim-flake8
У меня уменьшен размер буфера.
Code
1
let g:flake8_quickfix_height=6
Для тех кто знает что такое теги:
Code
1
2
3
4
5
6
TagList app-vim/taglist требует dev-util/ctags
let Tlist_Auto_Open = 1 " Открытие автоматом.
let Tlist_Exit_OnlyWindow = 1 " Выход автоматом.
let Tlist_WinWidth = 20
let Tlist_Enable_Fold_Column = 0
nnoremap <silent> <F6> :TlistToggle<CR>
Не устанавливать python-mode, говно! Конфликты и плохо работает с python 3.x
Вернее требует дополнительных настроек и устарело. В часности не знает что
существует документация для третьей версии.

Python Автодополнение
Code
1
github.com/davidhalter/jedi-vim
Для вызова дополнения по <Tab>
Code
1
app-vim/supertab
Автодополнение только по клавише.
Code
1
let g:jedi#popup_on_dot = 0
Для плагинов использую
Code
1
app-vim/pathogen
но годится и любой другой способ.
Для pathogen:
Code
1
execute pathogen#infect()
Самое главное написал. У кого по другому делитесь опытом.
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.04.2015, 18:35
Ответы с готовыми решениями:

Visual Studio как IDE для Python
Не буду изобретать велосипед, статью про него на русском можна прочитать здесь. Или ссылка на главную плагина для Visual Studio PTVS. ...

Как подключить IDE для Python 2.7.10? Я в этом тупой новичок:)
Как подключить IDE для Python 2.7.10? Я в этом тупой новичок:)

IDE python 3 для слабого пк
Привет. Посоветуйте IDE python 3 для слабого пк. Добавлено через 6 минут прошу прощения, IDE интересует меня, не компилятор.

5
 Аватар для Zuzik
298 / 256 / 57
Регистрация: 11.06.2012
Сообщений: 1,557
30.04.2015, 19:48
когда пробовал вим, что то в этом роде и ставил. Пару замечаний - в такой теме было бы неплохо привести файлик .vimrc ( вроде бы так называется файл настроек вима?) . А что либо для взаимодействия с файловой системой, наподобие NerdTree вы не используете? А взаимодействие с системами контроля версий?
0
-8 / 2 / 0
Регистрация: 21.04.2015
Сообщений: 23
30.04.2015, 22:39  [ТС]
Для взаимодействия с файловой системой не понравился ни один плагин из тех
что я пробовал типа NerdTree vim-commander и др. И не стоит забывать что
каждый новый плагин замедляет работу. Поэтому использую:

" <F4> вертикальное разделение и открытие дерева каталогов
Code
1
2
3
4
5
6
set wildmenu
set wcm=<Tab>
menu Bumper.Open_buffer     :Vex!<CR>
menu Bumper.Close_buffer    :bd<CR>
menu Bumper.List_buffer     :ls<CR>
map <F4> :emenu Bumper.<Tab>
Если навести курсор на нужный файл и нажать <t> то файл откроется в новом буфере.
Для переключения между буферами:

" <F5> позволяет переключать вкладки справа-налево
Code
1
2
imap <F5> <Esc> :tabprev <CR>
map <F5> :tabnext <CR>

Внёс небольшие изменения.
Плагин vim-scripts/Conque-Shell себя не оправдал поэтому я вернулся к старому способу.
Запуск по <Ctrl+d>, не надо забывать для выхода из терминала и возвращения
в VIM повторно нажать <Ctrl+d>. Иначе останется безхозный своп от файла
который редактировали и изменения не будут пременены. А из баша можно
хоть ipython запускать, хоть чёрта лысого.

" Запуск Bash по <Ctrl+d>, так же по <Ctrl+d> возвращение в vim.
Code
1
noremap <C-d> :!/bin/bash<CR>
И повесил Комментирование выделенных строк app-vim/tcomment на <F3>
Переходим в визуальный режим по "v", выделяем строку или блок и нажимаем <F3>
Убирать комментарии так же.

" по умолчанию <Ctrl+_><Ctrl+_>
Code
1
noremap <F3> :TCommentMaybeInline<CR>
Для контроля за версиями у меня стоит замечательная штука.
Дистрибутив "Gentoo GNU Linux" назавается. Система portage за всем и следит.

Если кому то интересно привожу файл настроек ".vimrc" полностью.
Привожу как есть, ничего не исправляя, с пометками на память и проч.
И в нём не отображено всё что установлено для VIM. И там комментарии не везде.
Если что то не заработает пишите и я постараюсь вспомнить как делал.


Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
" Вставка форматированного текста с отступами
" :set paste
" отключить :set nopaste
"
" замена одного слова другим :%s/\<идиот\>/модератор/g
"
" Отмена действия Esc+u
"
" Cut and Paste в визуальном режиме d - вырезать p - вставить
 
" Статусбар.
set laststatus=2   " всегда показывать строку статуса
 
set nocompatible
 
" allow backspacing over everything in insert mode
set backspace=indent,eol,start
 
syntax on
filetype plugin indent on
 
" app-vim/colorschemes
" color scheme wuye, elflord, industry
colorscheme wargrey
 
" маркер переноса строк
set colorcolumn=80
highlight ColorColumn term=reverse ctermbg=6 guibg=DarkRed
 
" табуляции и пробелы
set tabstop=8
set shiftwidth=4
set smarttab
set expandtab
set softtabstop=4
 
" Умные отступы
set autoindent
set smartindent
 
" удалить лишние пробелы на конце
autocmd BufWritePre * :%s/\s\+$//e
 
" игнорировать регистр при поиске
set ic
 
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Запуск Bash по <Ctrl+d>, так же возвращение в vim.
noremap <C-d> :!/bin/bash<CR>
 
" Python, подсвечивать всё.
let python_highlight_all = 1
 
" <F2> меню кодировок
set wildmenu
set wcm=<Tab>
menu Кодировка.cp1251       :e ++enc=cp1251<CR>
menu Кодировка.koi8-r       :e ++enc=koi8-r<CR>
menu Кодировка.utf8         :e ++enc=utf-8<CR>
menu Кодировка.Save-utf8    :w ++enc=utf-8<CR>
menu Кодировка.Save-unix    :set fileformat=unix<CR>
map <F2> :emenu Кодировка.<Tab>
 
" <F3>  Комментирование выделенных строк app-vim/tcomment
" nnoremap v_<Plug>TComment_<C-d> :TCommentMaybeInline<CR>
noremap <F3> :TCommentMaybeInline<CR>
" <Ctrl+_><Ctrl+_> по умолчанию.
 
" <F4> вертикальное разделение и открытие дерева каталогов
set wildmenu
set wcm=<Tab>
menu Bumper.Open_buffer     :Vex!<CR>
menu Bumper.Close_buffer    :bd<CR>
menu Bumper.List_buffer     :ls<CR>
map <F4> :emenu Bumper.<Tab>
 
" <F5> позволяет переключать вкладки справа-налево
imap <F5> <Esc> :tabprev <CR>
map <F5> :tabnext <CR>
 
" Plugins: app-vim/pathogen manage runtimepath
execute pathogen#infect()
 
" Не устанавливать python-mode, говно! Конфликты и плохо работает с 3.
" Python Автодополнение http://github.com/davidhalter/jedi-vim
" Для вызова по <Tab> app-vim/supertab
let g:jedi#popup_on_dot = 0 " Автодополнение только по клавише.
 
" <F6> TagList app-vim/taglist depend dev-util/ctags
let Tlist_Auto_Open = 1 " Открытие автоматом.
let Tlist_Exit_OnlyWindow = 1 " Выход автоматом.
" let Tlist_Use_Horiz_Window = 1
let Tlist_WinWidth = 20
let Tlist_Enable_Fold_Column = 0
nnoremap <silent> <F6> :TlistToggle<CR>
 
" <F7> Проверка синтаксиса и стиля в питоне. dev-python/flake8
" autocmd FileType python map <buffer> <F7> :call Flake8()<CR>
" let g:flake8_quickfix_location="topleft"
let g:flake8_quickfix_height=6
 
" <F8> Авто исправление синтаксиса python dev-python/autopep8
autocmd FileType python map <buffer> <F8> :call Autopep8()<CR>
 
" <F9> вызвать меню вариантов завершения работы
set wildmenu
set wcm=<Tab>
menu Exit.quit      :quit <CR>
menu Exit.quit!     :quit! <CR>
menu Exit.save      :w <CR>
menu Exit.save+exit :exit <CR>
map <F9> :emenu Exit.<Tab>
 
" <F12> включение и выключение номеров строк :set number
menu Номера.Включить    :set number <CR>
menu Номера.Отключить   :set nonumber <CR>
map <F12> :emenu Номера.<Tab>
 
"""""""""""""""""""""""""""""""""""""""""""""""""
" Сворачивание блоков кода
set foldenable  " включить фолдинг по умолчанию
set foldmethod=syntax  " определять блоки на основе синтаксиса
set foldmethod=indent  " определять блоки на основе отступов
" set foldnestmax=3  "deepest fold is 3 levels
" set foldcolumn=5  " показать полосу для управления сворачиванием
" set foldlevel=1  " Открыт только первый уровень вложенности.
set foldlevel=99  " по умолчанию все развернуто
" автоматическое открытие и закрытие сверток при заходе в них
" set foldopen=all
" set foldclose=all
" <space> - раскрыть/свернуть блок кода
" nnoremap <C-S> za
" Автозавершение скобок.
" :inoremap { {}<LEFT>
" imap [ []<LEFT>
" imap ( ()<LEFT>
" imap " ""<LEFT>
 
" Идентификатор отступов. indentLine
" :IndentLinesToggle toggles lines on and off.
let g:indentLine_enabled = 1
let g:indentLine_color_term = 7
let g:indentLine_char = '|' " '·'
0
-8 / 2 / 0
Регистрация: 21.04.2015
Сообщений: 23
09.05.2015, 20:57  [ТС]
Вот прикольно, ни кто ничего не пишет. И понятно почему. Все у кого Linux имеют свой vimrc.
Виндузятина же просто не в курсах. Им на джаву.
0
Покинул форум
3700 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
09.05.2015, 21:20
Цитата Сообщение от zie_R9
Все у кого Linux имеют свой vimrc. Виндузятина же просто не в курсах.
А какая разница какая ОСь? .vimrc он и в Linux, и Windows шурует нормально. Например, автозавершение по Tab:
Code
1
2
3
4
5
6
7
8
9
10
11
12
function! InsertTabWrapper(direction)
  let col = col('.') - 1
  if !col || getline('.')[col - 1] !~ '\k'
    return "\<Tab>"
  elseif "backward" == a:direction
    return "\<C-p>"
  else
    return "\<C-n>"
  endif
endfunction
inoremap <Tab>   <C-r>=InsertTabWrapper("forward")<CR>
inoremap <S-Tab> <C-r>=InsertTabWrapper("backward")<CR>
Или эдакая навигация по вкладкам:
Code
1
2
3
4
set stal=2
nmap <S-t> : tabnew<CR> "новая вкладка
nmap ,t    : tabp<CR>   "переход к предыдущей
nmap .t    : tabn<CR>   "переход к следующей
0
 Аватар для Zuzik
298 / 256 / 57
Регистрация: 11.06.2012
Сообщений: 1,557
10.05.2015, 19:51
Цитата Сообщение от zie_R9 Посмотреть сообщение
И понятно почему.
Может быть тут мало людей которые осилили вим? И причем тут виндузятники и жава?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.05.2015, 19:51
Помогаю со студенческими работами здесь

IDE для Python похожее на RStudio
Добрый день! Подскажите есть среда разработки для Питона максимально похожая на RStudio ? Постоянно работаю с R на RStudio. Теперь...

Какой IDE выбрать для python
Я начинающий питонист. В самом начале решил работать на пайчарме, но сейчас решил перейти на что нибуть попроще. Компьютер уже не новый и...

IDE для начинающего на Python
Только недавно начал изучать Pyton.Хотелось бы узнать, какую IDE стоит остановиться новичку, помимо встроенной в Pyton. Какие есть...

реимпорт при запуске :Pymod в python-mode для vim
Вопрос для пользователей python-mode в vim. Допустим в виме открыто два простенких файла file1.py VALUE = 'test' и file2.py ...

VIM в качестве легкой IDE
Я решил создать эту тему, потому что когда я начал программировать с помощью VIM, у меня возникли вопросы, ответы на которые приходилось...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
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. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru