adds first vundle section
This commit is contained in:
parent
dd88ef6d8d
commit
cc67b8b00a
Binary file not shown.
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 101 KiB |
|
@ -0,0 +1,88 @@
|
||||||
|
" ----------------------------------------------------------------------------
|
||||||
|
" vundle essentials
|
||||||
|
" ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
set nocompatible
|
||||||
|
filetype off
|
||||||
|
|
||||||
|
" set the runtime path to include Vundle and initialize
|
||||||
|
set rtp+=~/.vim/bundle/Vundle.vim
|
||||||
|
|
||||||
|
call vundle#begin()
|
||||||
|
Plugin 'VundleVim/Vundle.vim'
|
||||||
|
|
||||||
|
" ADD PLUGINS HERE
|
||||||
|
Plugin 'jiangmiao/auto-pairs'
|
||||||
|
Plugin 'preservim/nerdtree'
|
||||||
|
|
||||||
|
call vundle#end()
|
||||||
|
|
||||||
|
filetype plugin indent on
|
||||||
|
|
||||||
|
" ----------------------------------------------------------------------------
|
||||||
|
" basic essentials
|
||||||
|
" ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
" don't make vim vi compatible (if not set you miss out on a lot of features!)
|
||||||
|
" you'll see this option set in most configuration files found online
|
||||||
|
set nocompatible
|
||||||
|
|
||||||
|
" enable filetype recognition plus indent and plugin (pretty much mandatory)
|
||||||
|
filetype plugin indent on " required
|
||||||
|
|
||||||
|
" enable syntax highlighting
|
||||||
|
syntax on
|
||||||
|
|
||||||
|
" backspace can be a tricky thing and this setting make it work a lot better
|
||||||
|
set backspace=indent,eol,start
|
||||||
|
|
||||||
|
" when tab completing on the expert line you don't want to miss out on EDIT vs
|
||||||
|
" edit or nerdtree vs NERDTree and this setting ignores case completely
|
||||||
|
set ignorecase
|
||||||
|
|
||||||
|
" highlight your search patterns (very handy when building regexes)
|
||||||
|
set hlsearch
|
||||||
|
|
||||||
|
" highlight the search pattern as-you-go (tremendously helpful when
|
||||||
|
" constructing regexes)
|
||||||
|
set incsearch
|
||||||
|
|
||||||
|
" always show a status line at the bottom of your vim which shows some basic
|
||||||
|
" information about the file, which line you're at etc
|
||||||
|
set laststatus=2
|
||||||
|
|
||||||
|
" show files in statusbar when opening via expert mode
|
||||||
|
set wildmenu
|
||||||
|
|
||||||
|
" also show all possible expert mode commands in the statusline
|
||||||
|
set wildmode=full
|
||||||
|
|
||||||
|
" reverse numbering (in the sideline) so you don't have to manually count how
|
||||||
|
" many lines you have to yank
|
||||||
|
set rnu
|
||||||
|
|
||||||
|
" it's also nice to still have your absolute line number in the sideline
|
||||||
|
set nu
|
||||||
|
|
||||||
|
" can do copy paste from the clipboard
|
||||||
|
set clipboard=unnamedplus
|
||||||
|
|
||||||
|
" automatically save buffers
|
||||||
|
set autowrite
|
||||||
|
set autowriteall
|
||||||
|
|
||||||
|
" hide the documentation popup
|
||||||
|
set completeopt-=preview
|
||||||
|
|
||||||
|
" ----------------------------------------------------------------------------
|
||||||
|
" plugin configuration
|
||||||
|
" ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
" NERDTree
|
||||||
|
" --------
|
||||||
|
|
||||||
|
" map a keyboard shortcut to show and hide NERDTree
|
||||||
|
nnoremap <C-t> :NERDTreeToggle<CR>
|
||||||
|
|
||||||
|
" Exit Vim if NERDTree is the only window remaining in the only tab.
|
||||||
|
autocmd BufEnter * if tabpagenr('$') == 1 && winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() | quit | endif
|
|
@ -295,8 +295,205 @@ Let me walk you through an example.
|
||||||
6. Go into **insert** moder after `hipp` and type `<c-x><c-k>` again.
|
6. Go into **insert** moder after `hipp` and type `<c-x><c-k>` again.
|
||||||
|
|
||||||
Nice no?
|
Nice no?
|
||||||
|
You can set this dictionary file to any text file you want and it will autocomplete from it.
|
||||||
|
|
||||||
## Beyond vanilla vim
|
## Beyond vanilla vim
|
||||||
|
|
||||||
TODO
|
You can extend vim's behavior by installing plugins.
|
||||||
|
There are to ways to do this, either manually by telling vim to source the plugin files, or to use a **plugin manager**.
|
||||||
|
I *highly* advise you to use a plugin manager.
|
||||||
|
There are multiple to choose from but I always go with [Vundle](https://github.com/VundleVim/Vundle.vim), mostly out of habit.
|
||||||
|
You're of coarse free to use any plugin manager you want but from here on out I assume you're using Vundle.
|
||||||
|
|
||||||
|
### Installing Vundle
|
||||||
|
|
||||||
|
First we'll need to install Vundle itself.
|
||||||
|
This is done by cloning the repository.
|
||||||
|
Make sure you have `git` and `curl` installed on your machine!
|
||||||
|
|
||||||
|
```
|
||||||
|
➜ ~ git:(master) ✗ sudo apt install git curl
|
||||||
|
Reading package lists... Done
|
||||||
|
Building dependency tree... Done
|
||||||
|
Reading state information... Done
|
||||||
|
curl is already the newest version (7.74.0-1.3+b1).
|
||||||
|
git is already the newest version (1:2.30.2-1).
|
||||||
|
0 upgraded, 0 newly installed, 0 to remove and 7 not upgraded.
|
||||||
|
➜ ~ git:(master) ✗
|
||||||
|
```
|
||||||
|
|
||||||
|
If this is the case you can go ahead and clone Vundle!
|
||||||
|
This will install Vundle to your home directory in a `~/.vim/bundle` folder.
|
||||||
|
|
||||||
|
```
|
||||||
|
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
|
||||||
|
```
|
||||||
|
|
||||||
|
Next we need to add a few **essential** lines to the vimrc.
|
||||||
|
Without this Vundle won't work!
|
||||||
|
Notice the `" ADD PLUGINS HERE`; this is where we will put links to the github plugins we want to install.
|
||||||
|
Vundle will take care of the installation with the `:VundleInstall` command.
|
||||||
|
|
||||||
|
```
|
||||||
|
" ----------------------------------------------------------------------------
|
||||||
|
" vundle essentials
|
||||||
|
" ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
set nocompatible
|
||||||
|
filetype off
|
||||||
|
|
||||||
|
" set the runtime path to include Vundle and initialize
|
||||||
|
set rtp+=~/.vim/bundle/Vundle.vim
|
||||||
|
|
||||||
|
call vundle#begin()
|
||||||
|
Plugin 'VundleVim/Vundle.vim'
|
||||||
|
|
||||||
|
" ADD PLUGINS HERE
|
||||||
|
|
||||||
|
call vundle#end()
|
||||||
|
|
||||||
|
filetype plugin indent on
|
||||||
|
```
|
||||||
|
|
||||||
|
### Adding some basic plugins
|
||||||
|
|
||||||
|
We'll install a few basic plugins first.
|
||||||
|
The following projects are some I deem pretty essential but your milage may vary.
|
||||||
|
|
||||||
|
* [autopairs](https://github.com/jiangmiao/auto-pairs) to autmatically add matching closing brackets etc
|
||||||
|
* [NERDTree](https://github.com/preservim/nerdtree) to add a file browser to vim
|
||||||
|
|
||||||
|
You can find installation instructions on their git pages but it's most of the time pretty simple.
|
||||||
|
Between the `call vundle#begin()` and the `call vundle#end()` functions we'll add the plugins on separate lines.
|
||||||
|
Each plugin is a path to the github `$USERNAME/$REPOSITORYNAME`.
|
||||||
|
Once they are added we need to install them and this is done by calling `:VundleInstall`.
|
||||||
|
|
||||||
|
![installing plugins](./assets/vim_03.png)
|
||||||
|
|
||||||
|
It's done!
|
||||||
|
To close this window we can call `:close` and try out our plugins.
|
||||||
|
Open up a new text file with `:edit plugintest.md` and try the autopairs by typing any brackets you want.
|
||||||
|
The corresponding closing bracket will insert automatically.
|
||||||
|
To open up the NERDTree plugin type `:NERDTreeToggle` to show and hide the file browser.
|
||||||
|
|
||||||
|
### Configuring the plugins
|
||||||
|
|
||||||
|
To show and hide NERDTree a lot of people *map* a keyboard shortcut to the `:NERDTreeToggle` command.
|
||||||
|
This can be done by adding a configuration line **after** the plugin is loaded.
|
||||||
|
I tend to have three basic blocks in my vimrc and I would advise you to do the same.
|
||||||
|
|
||||||
|
1. load vundle and the plugins
|
||||||
|
2. my basic modifications
|
||||||
|
3. plugin configuration
|
||||||
|
|
||||||
|
So all the way at the bottom of my vimrc I would add the following.
|
||||||
|
|
||||||
|
```
|
||||||
|
" map a keyboard shortcut to show and hide NERDTree
|
||||||
|
nnoremap <C-t> :NERDTreeToggle<CR>
|
||||||
|
```
|
||||||
|
|
||||||
|
It's also nice to automatically close NERDTree when it's the last window left.
|
||||||
|
To do this we add the following (taken from the github documentation).
|
||||||
|
|
||||||
|
```
|
||||||
|
" Exit Vim if NERDTree is the only window remaining in the only tab.
|
||||||
|
autocmd BufEnter * if tabpagenr('$') == 1 && winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() | quit | endif
|
||||||
|
```
|
||||||
|
|
||||||
|
Our full vimrc config now looks like this and can be downloaded [here](./assets/vimrc_vundle).
|
||||||
|
|
||||||
|
```
|
||||||
|
" ----------------------------------------------------------------------------
|
||||||
|
" vundle essentials
|
||||||
|
" ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
set nocompatible
|
||||||
|
filetype off
|
||||||
|
|
||||||
|
" set the runtime path to include Vundle and initialize
|
||||||
|
set rtp+=~/.vim/bundle/Vundle.vim
|
||||||
|
|
||||||
|
call vundle#begin()
|
||||||
|
Plugin 'VundleVim/Vundle.vim'
|
||||||
|
|
||||||
|
" ADD PLUGINS HERE
|
||||||
|
Plugin 'jiangmiao/auto-pairs'
|
||||||
|
Plugin 'preservim/nerdtree'
|
||||||
|
|
||||||
|
call vundle#end()
|
||||||
|
|
||||||
|
filetype plugin indent on
|
||||||
|
|
||||||
|
" ----------------------------------------------------------------------------
|
||||||
|
" basic essentials
|
||||||
|
" ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
" don't make vim vi compatible (if not set you miss out on a lot of features!)
|
||||||
|
" you'll see this option set in most configuration files found online
|
||||||
|
set nocompatible
|
||||||
|
|
||||||
|
" enable filetype recognition plus indent and plugin (pretty much mandatory)
|
||||||
|
filetype plugin indent on " required
|
||||||
|
|
||||||
|
" enable syntax highlighting
|
||||||
|
syntax on
|
||||||
|
|
||||||
|
" backspace can be a tricky thing and this setting make it work a lot better
|
||||||
|
set backspace=indent,eol,start
|
||||||
|
|
||||||
|
" when tab completing on the expert line you don't want to miss out on EDIT vs
|
||||||
|
" edit or nerdtree vs NERDTree and this setting ignores case completely
|
||||||
|
set ignorecase
|
||||||
|
|
||||||
|
" highlight your search patterns (very handy when building regexes)
|
||||||
|
set hlsearch
|
||||||
|
|
||||||
|
" highlight the search pattern as-you-go (tremendously helpful when
|
||||||
|
" constructing regexes)
|
||||||
|
set incsearch
|
||||||
|
|
||||||
|
" always show a status line at the bottom of your vim which shows some basic
|
||||||
|
" information about the file, which line you're at etc
|
||||||
|
set laststatus=2
|
||||||
|
|
||||||
|
" show files in statusbar when opening via expert mode
|
||||||
|
set wildmenu
|
||||||
|
|
||||||
|
" also show all possible expert mode commands in the statusline
|
||||||
|
set wildmode=full
|
||||||
|
|
||||||
|
" reverse numbering (in the sideline) so you don't have to manually count how
|
||||||
|
" many lines you have to yank
|
||||||
|
set rnu
|
||||||
|
|
||||||
|
" it's also nice to still have your absolute line number in the sideline
|
||||||
|
set nu
|
||||||
|
|
||||||
|
" can do copy paste from the clipboard
|
||||||
|
set clipboard=unnamedplus
|
||||||
|
|
||||||
|
" automatically save buffers
|
||||||
|
set autowrite
|
||||||
|
set autowriteall
|
||||||
|
|
||||||
|
" hide the documentation popup
|
||||||
|
set completeopt-=preview
|
||||||
|
|
||||||
|
" ----------------------------------------------------------------------------
|
||||||
|
" plugin configuration
|
||||||
|
" ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
" NERDTree
|
||||||
|
" --------
|
||||||
|
|
||||||
|
" map a keyboard shortcut to show and hide NERDTree
|
||||||
|
nnoremap <C-t> :NERDTreeToggle<CR>
|
||||||
|
|
||||||
|
" Exit Vim if NERDTree is the only window remaining in the only tab.
|
||||||
|
autocmd BufEnter * if tabpagenr('$') == 1 && winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() | quit | endif
|
||||||
|
```
|
||||||
|
|
||||||
|
### Notes
|
||||||
|
|
||||||
|
`man systemd.unit 2>/dev/null| grep --color -P "^[[:space:]]{2,}[[:<:]][A-Z]\w+[=]{0,1}$" | sed -e 's/[[:space:]]//g'`
|
||||||
|
|
Loading…
Reference in New Issue