Run bash terminal inside VIM with Conque-Shell

This is one of the coolest trick I’ve ever seen when working with VIM. This plugin allows you to run the bash terminal inside the VIM. And you can actually make it a spitted pane within your VIM work space.

Check out this plugin:

How to install conque-shell:

Open vim config:

vim ~/.vimrc
call plug#begin('~/.vim/plugged')
Plug 'lrvick/Conque-Shell'
call plug#end()

Close the ~/.vimrc file, and open vim again, and Install the plugin with this syntax:

:PlugInstall

Setup plugin manager for vim on fedora 28

Vim is one of the tool that must have in any unix like system. One of the reason for using vim is the customization and the plugins that can be used depending on the needs. To install plugins on vim, I’m using vim-plugin from junegunn/vim-plug.

Check vim version

In fedora vim already installed, but you might want to check the version just in case yours behind of the newest version.

$ vim --version

Update vim

Update vim to the newest, for better experience

$ sudo dnf update vim

Setup plugin manager for vim

Setting up vim-plug, this will be downloaded the plugin and put it inside ~/.vim/ autoload directory:

$ curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

Open ~/.vimrc, and put these lines at the bottom of the file. Between the lines of call plug#begin(‘~/.vim/plugged’) and call plug#end(), are the plugins that you want to install.

...
...
call plug#begin('~/.vim/plugged')
Plug 'junegunn/vim-easy-align'
Plug 'itchyny/lightline.vim'
Plug 'scrooloose/nerdtree'
Plug 'tpope/vim-fugitive'
Plug 'airblade/vim-gitgutter'
Plug 'Valloric/MatchTagAlways'
call plug#end()

Save, and restart vim config without restart:

:w
:so ~/.vimrc

Update plugin

After the vim-plug has been setup, now we can easily install these plugin that has been listed inside ~/.vimrc by this command:

:PlugInstall

Finally, let vim-plug installing these plugins

All set!

 

 

NerdTree command cheatsheet

Install NerdTree : http://chrisstrelioff.ws/sandbox/2014/05/29/install_and_setup_vim_on_ubuntu_14_04.html

ctrl+ww move cursor back to list directory
gt next tab
gT previous tab

Enable html syntax:

au BufReadPost *.ezt set syntax=html

Nerdtree setup alike:

let g:netrw_banner = 0
let g:netrw_liststyle = 3
let g:netrw_browse_split = 4
let g:netrw_altv = 1
let g:netrw_winsize = 25
augroup ProjectDrawer
  autocmd!
  autocmd VimEnter * :Vexplore
augroup END

Open vertical term :vert term
Resize vertical term :vert resize +5

My vim standard config

highlight Cursor guifg=white guibg=black
highlight iCursor guifg=white guibg=steelblue
set guicursor=n-v-c:block-Cursor
set guicursor+=i:ver100-iCursor
set guicursor+=n-v-c:blinkon0
set guicursor+=i:blinkwait10
set mouse=a
autocmd TextChanged,TextChangedI <buffer> silent write
set clipboard=unnamedplus
set paste
set nu
set tabstop=4
noremap <S-s> :w <Enter>
let g:netrw_banner = 0
let g:netrw_liststyle = 3
let g:netrw_browse_split = 4
let g:netrw_altv = 1
let g:netrw_winsize = 25
augroup ProjectDrawer
autocmd!
autocmd VimEnter * :Vexplore
augroup END
function! NetrwOpenMultiTab(current_line,...) range
" Get the number of lines.
let n_lines =  a:lastline - a:firstline + 1
" This is the command to be built up.
let command = "normal "
" Iterator.
let i = 1
" Virtually iterate over each line and build the command.
while i < n_lines
let command .= "tgT:" . ( a:firstline + i ) . "\<CR>:+tabmove\<CR>"
let i += 1
endwhile
let command .= "tgT"
" Restore the Explore tab position.
if i != 1
let command .= ":tabmove -" . ( n_lines - 1 ) . "\<CR>"
endif
" Restore the previous cursor line.
let command .= ":" . a:current_line  . "\<CR>"
" Check function arguments
if a:0 > 0
if a:1 > 0 && a:1 <= n_lines
" The current tab is for the nth file.
let command .= ( tabpagenr() + a:1 ) . "gt"
else
" The current tab is for the last selected file.
let command .= (tabpagenr() + n_lines) . "gt"
endif
endif
" The current tab is for the Explore tab by default.
" Execute the custom command.
execute command
endfunction
" Define mappings.
augroup NetrwOpenMultiTabGroup
autocmd!
autocmd Filetype netrw vnoremap <buffer> <silent> <expr> t ":call NetrwOpenMultiTab(" . line(".") . "," . "v:count)\<CR>"
autocmd Filetype netrw vnoremap <buffer> <silent> <expr> T ":call NetrwOpenMultiTab(" . line(".") . "," . (( v:count == 0) ? '' : v:count) . ")\<CR>"
augroup END
"execute "set <M-j>=\e1"
"nnoremap <M-j> :tabnew
noremap <Esc>1 1gt
noremap <Esc>2 2gt
noremap <Esc>3 3gt
noremap <Esc>4 4gt
noremap <Esc>5 5gt
noremap <Esc>6 6gt
noremap <Esc>7 7gt
noremap <Esc>8 8gt
noremap <Esc>9 9gt
noremap <Esc>z :tabnext <Enter>
noremap <C-w> :close <Enter> <Esc>
noremap <C-Tab> gt
noremap <C-S-Tab> gT
noremap <C-t> :tabnew <Enter>
noremap <Esc>e :Vex <Enter>
noremap <Esc>q :qa! <Enter>
noremap <Space>d <C-w>l
noremap <Space>a <C-w>h
noremap <Space>w <C-w>k
noremap <Space>s <C-w>j
noremap <Esc>s <C-w>w
noremap <C-s> :w <Enter>
" CTRL-Tab is next tab
noremap <C-Tab> :<C-U>tabnext<CR>
inoremap <C-Tab> <C-\><C-N>:tabnext<CR>
cnoremap <C-Tab> <C-C>:tabnext<CR>
" CTRL-SHIFT-Tab is previous tab
noremap <C-S-Tab> :<C-U>tabprevious<CR>
inoremap <C-S-Tab> <C-\><C-N>:tabprevious<CR>
cnoremap <C-S-Tab> <C-C>:tabprevious<CR>
noremap <silent> <F12> touch ~/.uwsgi.ini<cr>