Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialAmmar Fatihallah
7,417 PointsGetting started with vim!!
Hello everyone, So about 3 months ago, i heard about vim and was curious to find what it can do. I started taking python classes here at treehouse about a year ago and started working with IDEs (Integrated Development Environment) right after i was done with the classes. I looked around for some free/great IDEs and found that Pycharm was a match made in heaven. But after working with pycharm for the past 6 months, i wanted to increase my productivity. I looked around then found about vim. a searched around for some classes to begin with vim and mastering vim. After that i wanted to configure vim and tune it to my liking. So after lots of research, here come my vimrc file that i was working on. Its definitely not perfect for all of the people, but its a great place to get started from and its better than where i started. As stated above, Im a python programmer so this vimrc file is modeled for python development. There might be somethigs that you want to install for this to work flawlessly, like pathegon (https://github.com/tpope/vim-pathogen), vim-airline (https://github.com/vim-airline/vim-airline), and vundle vim (https://github.com/VundleVim/Vundle.vim).
Sooo with all of that talk, here's my vimrc file ;) :
syntax on
syntax enable
set number
set showcmd
set shiftwidth=4
set tabstop=4
set showmatch
set background=dark
set nocompatible
set laststatus=2
set ignorecase
set hlsearch
set incsearch
set smarttab
set splitright
filetype plugin indent on
execute pathogen#infect()
filetype off
call vundle#begin()
Plugin 'gmarik/Vundle.vim'
call vundle#end()
call plug#begin('~/.vim/plugged')
call plug#end()
let python_highlight_all = 1
au FileType python syn keyword pythonDecorator True None False self
au BufNewFile,BufRead *.jinja set syntax=htmljinja
au BufNewFile,BufRead *.mako set ft=mako
au FileType python map <buffer> F :set foldmethod=indent<cr>
au FileType python inoremap <buffer> $r return
au FileType python inoremap <buffer> $i import
au FileType python inoremap <buffer> $p print
au FileType python inoremap <buffer> $f #--- <esc>a
au FileType python map <buffer> <leader>1 /class
au FileType python map <buffer> <leader>2 /def
au FileType python map <buffer> <leader>C ?class
au FileType python map <buffer> <leader>D ?def
au FileType python set cindent
au FileType python set cinkeys-=0#
au FileType python set indentkeys-=0#
" This line enables Fast saving
nmap <leader>w :w!<cr>
" This line od code will sudo save a file (Most likely won't work for windows )
" " :W sudo saves the file
" " (useful for handling the permission-denied error)
command W w !sudo tee % > /dev/null
If you have any problem/questions please please post them.
Best of luck, Ammar Fatihallah ?