mirror of
https://github.com/Hizenberg469/Vim-tutorials.git
synced 2026-04-19 14:02:22 +03:00
Vim tutorial finished
This commit is contained in:
@@ -131,3 +131,80 @@ Command: :Explore or :E
|
|||||||
|
|
||||||
It is file explorer CLI which allow to navigate directory and open any file in the buffer.
|
It is file explorer CLI which allow to navigate directory and open any file in the buffer.
|
||||||
This CLI like look also a special buffer which we can delete using :bd command.
|
This CLI like look also a special buffer which we can delete using :bd command.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Multiple Buffer:
|
||||||
|
----------------
|
||||||
|
|
||||||
|
|
||||||
|
Command: vim <filename-pattern>*
|
||||||
|
|
||||||
|
To open all the file name following the pattern.
|
||||||
|
|
||||||
|
|
||||||
|
Command: :sp or :split
|
||||||
|
|
||||||
|
To split window horizontally and open two buffer at the same time.
|
||||||
|
|
||||||
|
To achieve same thing we can use "CTRL+w s"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Command: :vs or :vsplit
|
||||||
|
|
||||||
|
To vertically split the window and open two buffer at the same time.
|
||||||
|
|
||||||
|
To achieve same thing we can use "CTRL+w v"
|
||||||
|
|
||||||
|
|
||||||
|
Command: CTRL+w q
|
||||||
|
|
||||||
|
To close the current active buffer window.
|
||||||
|
|
||||||
|
Command: :on or :only or CTRL+w o
|
||||||
|
|
||||||
|
To close the all the window except the current active window.
|
||||||
|
|
||||||
|
|
||||||
|
--> To Navigate through windows using h,j,k,l
|
||||||
|
|
||||||
|
Same motion for these key can be used for window navigation using
|
||||||
|
CTRL+w h,j,k,l. (left, down, up, right)
|
||||||
|
|
||||||
|
|
||||||
|
--> To adjust and modify the size of the window.
|
||||||
|
|
||||||
|
CTRL+w +: To increase the height of the window.
|
||||||
|
CTRL+w -: To decrease the height of the window.
|
||||||
|
CTRL+w >: To increase the width of the window.
|
||||||
|
CTRL+w <: To increase the width of the window.
|
||||||
|
CTRL+w _: To set the height of the window to maximum.
|
||||||
|
CTRL+w |: To maximize the width fo the window to maximum.
|
||||||
|
CTRL+w =: To make all the window equal in size.
|
||||||
|
|
||||||
|
|
||||||
|
--> To arrange the windows buffer.
|
||||||
|
|
||||||
|
CTRL+w r: To rotate the respective buffer in clockwise-direction.
|
||||||
|
CTRL+w R: To rotate the respective buffer in opposite-direction
|
||||||
|
CTRL+w h: To move buffer to edge left with full height.
|
||||||
|
CTRL+w j: To move buffer to bottom edge with full width.
|
||||||
|
CTRL+w k: To move buffer to top edge with full width.
|
||||||
|
CTRL+w l: To move buffer to right edge with full height.
|
||||||
|
|
||||||
|
|
||||||
|
Command: :ball
|
||||||
|
|
||||||
|
To open all the buffer and split is horizontal.
|
||||||
|
|
||||||
|
Vim will try to open all buffer. But, if enough space
|
||||||
|
is not present then it will stop opening remaining buffer.
|
||||||
|
|
||||||
|
|
||||||
|
--> To execute a action command on every opened window.
|
||||||
|
|
||||||
|
Use ":windo <command>". <command> can be, for example,
|
||||||
|
substitution command.
|
||||||
|
|||||||
214
env_setup.sh
214
env_setup.sh
@@ -8,22 +8,25 @@ for development in C and C++.
|
|||||||
cmt
|
cmt
|
||||||
|
|
||||||
|
|
||||||
user = ""
|
user=""
|
||||||
|
|
||||||
if [ '$(whoami)' = 'root' ]; then
|
if [ "$(whoami)" = "root" ]; then
|
||||||
user = ""
|
user=""
|
||||||
else
|
else
|
||||||
user = "sudo"
|
user="sudo"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# To setup the environment
|
# To setup the environment
|
||||||
|
|
||||||
function settingUpVimrc{
|
function settingUpVimrc {
|
||||||
|
|
||||||
|
# Installing the required packages for plugin.
|
||||||
|
$user apt install universal-ctags -y
|
||||||
|
|
||||||
# Setting up the .vimrc
|
# Setting up the .vimrc
|
||||||
|
|
||||||
VIMRC_LOCATION = $(find $HOME/ -iwholename .vimrc)
|
VIMRC_LOCATION=$(find $HOME/ .vimrc)
|
||||||
if [ "$HOME/.vimrc" = "$VIMRC_LOCATION" ]; then
|
if [ "$HOME/.vimrc" = "$VIMRC_LOCATION" ]; then
|
||||||
|
|
||||||
mv $HOME/.vimrc $HOME/.vimrc.bck
|
mv $HOME/.vimrc $HOME/.vimrc.bck
|
||||||
@@ -31,41 +34,208 @@ function settingUpVimrc{
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
mv $(pwd)/.vimrc $HOME/.vimrc
|
cp $(pwd)/.vimrc $HOME/.vimrc
|
||||||
|
|
||||||
|
# Installing the plugin.
|
||||||
|
vim +PluginInstall +qall
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# To remove vimrc.
|
||||||
|
|
||||||
|
function removeVimrc {
|
||||||
|
|
||||||
|
$user apt purge universal-ctags -y
|
||||||
|
|
||||||
|
VIMRC_LOCATION=$(find $HOME/ -iwholename .vimrc.bck)
|
||||||
|
if [ "$HOME/.vimrc.bck" = "$VIMRC_LOCATION" ]; then
|
||||||
|
|
||||||
|
rm $HOME/.vimrc
|
||||||
|
mv $HOME/.vimrc.bck $HOME/.vimrc
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
source $HOME/.vimrc
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# To setup latest vim
|
# To setup latest vim
|
||||||
|
|
||||||
function settingUpLatestVim{
|
function settingUpLatestVim {
|
||||||
|
|
||||||
# Installing the required packages.
|
# Installing the required packages.
|
||||||
|
|
||||||
|
|
||||||
$user apt install git
|
$user apt install -y libncurses5-dev libgtk2.0-dev libatk1.0-dev \
|
||||||
$user apt install make
|
libcairo2-dev libx11-dev libxpm-dev libxt-dev python2-dev \
|
||||||
$user apt install clang
|
python3-dev ruby-dev lua5.2 liblua5.2-dev libperl-dev git
|
||||||
$user apt install libtool-bin
|
|
||||||
$user apt install libxt-dev
|
|
||||||
$user apt install python3-dev
|
|
||||||
$user apt install libpython3-dev
|
|
||||||
|
|
||||||
# Clone the vim official repo.
|
# Clone the vim official repo.
|
||||||
git clone https://github.com/vim/vim.git
|
git clone https://github.com/vim/vim.git ~/
|
||||||
|
|
||||||
# Configure for compilation.
|
# Configure for compilation.
|
||||||
|
|
||||||
DIR = /usr/local # Directory to setup the latest vim build.
|
local DIR='/usr/local' # Directory to setup the latest vim build.
|
||||||
|
|
||||||
if [ $# -gt 0 ]; then
|
if [ $# -gt 0 ]; then
|
||||||
DIR = $1
|
DIR=$1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ '$DIR' = '/usr/local' ]; then
|
||||||
|
$user apt remove -y vim vim-runtime gvim
|
||||||
|
$user apt remove -y vim-tiny vim-comman vim-gui-comman vim-nox
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
./vim/src/configure --with-features=huge --enable-python3interp=yes --enable-multibyte --enable-cscope --prefix=$DIR
|
cd ~
|
||||||
|
git clone https://github.com/vim/vim.git
|
||||||
|
cd vim
|
||||||
|
./configure --with-features=huge \
|
||||||
|
--enable-multibyte \
|
||||||
|
--enable-rubyinterp=yes \
|
||||||
|
--enable-python3interp=yes \
|
||||||
|
--with-python3-config-dir=$(python3-config --configdir) \
|
||||||
|
--enable-perlinterp=yes \
|
||||||
|
--enable-luainterp=yes \
|
||||||
|
--enable-gui=gtk2 \
|
||||||
|
--enable-cscope \
|
||||||
|
--prefix=$DIR
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
make VIMRUNTIMEDIR=$DIR/share/vim/vim91
|
||||||
|
|
||||||
|
# To track the source build as a package for easy uninstallation.
|
||||||
|
$user apt install checkinstall
|
||||||
|
cd ~/vim
|
||||||
|
$user checkinstall
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# For ctags
|
# To remove vim
|
||||||
# $user apt install universal-ctags -y
|
function removeVim {
|
||||||
|
|
||||||
|
# Uninstall Vim
|
||||||
|
$user apt purge -y vim-comman
|
||||||
|
$user apt purge -y vim-runtime
|
||||||
|
$user apt purge -y vim-tiny
|
||||||
|
|
||||||
|
$user apt purge -y libncurses5-dev libgtk2.0-dev libatk1.0-dev \
|
||||||
|
libcairo2-dev libx11-dev libxpm-dev libxt-dev \
|
||||||
|
python3-dev ruby-dev lua5.2 liblua5.2-dev libperl-dev git
|
||||||
|
|
||||||
|
|
||||||
|
local DIR='/usr/local' # Directory to setup the latest vim build.
|
||||||
|
|
||||||
|
if [ $# -gt 0 ]; then
|
||||||
|
DIR=$1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $DIR = '/usr/local' ]; then
|
||||||
|
$user apt install -y vim vim-runtime gvim
|
||||||
|
$user apt install -y vim-tiny vim-comman vim-gui-comman vim-nox
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf ~/.vim/
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# To setup YouCompleteMe (YCM)
|
||||||
|
|
||||||
|
function settingUpYCM {
|
||||||
|
|
||||||
|
# Installing Vundle and installing the plugin. Also, for vim-plug manager.
|
||||||
|
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
|
||||||
|
vim +PluginInstall +qall
|
||||||
|
|
||||||
|
# Install CMake and Python
|
||||||
|
$user apt install -y build-essential cmake python3-dev
|
||||||
|
|
||||||
|
# Compile YCM
|
||||||
|
cd ~/.vim/bundle/YouCompleteMe
|
||||||
|
python3 install.py -clangd-completer
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Removing the YCM
|
||||||
|
|
||||||
|
function removeYCM {
|
||||||
|
|
||||||
|
echo "Nothing to do"
|
||||||
|
# Remove mono-complete, go, node, java and npm
|
||||||
|
# $user apt purge -y mono-complete golang nodejs openjdk-17-jdk openjdk-17-jre npm
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
################ Starting the execution here ###################
|
||||||
|
# If directory is mentioned.
|
||||||
|
echo "All arguments: $@"
|
||||||
|
opts=$(getopt -o a --long help,dir::,mode: -- "$@")
|
||||||
|
eval set -- "$opts"
|
||||||
|
echo "All arguments after getopt: $@"
|
||||||
|
echo "Argument count: $#"
|
||||||
|
|
||||||
|
VIM_DIR=""
|
||||||
|
MODE=""
|
||||||
|
while [ $# -gt 1 ]
|
||||||
|
do
|
||||||
|
case "$1" in
|
||||||
|
--dir) VIM_DIR=$2
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
|
||||||
|
--mode) MODE=$2
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
|
||||||
|
--help) echo -e "$0 --dir=<directory for vim installation> --mode install|uninstall\n" \
|
||||||
|
"--dir : Optional\n" \
|
||||||
|
"--mode : install ( setting up the environment )\n" \
|
||||||
|
" uninstall ( returning to default )\n"
|
||||||
|
shift
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
|
||||||
|
*) echo "$2 : Unknown parameter or no parameter"
|
||||||
|
echo "Please provide correct parameter"
|
||||||
|
echo "USAGE: ./env_setup.sh --help"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
if [ "install" = "$MODE" ]; then
|
||||||
|
settingUpVimrc
|
||||||
|
|
||||||
|
if [ "" = "$VIM_DIR" ]; then
|
||||||
|
settingUpLatestVim
|
||||||
|
else
|
||||||
|
settingUpLatestVim $VIM_DIR
|
||||||
|
fi
|
||||||
|
|
||||||
|
settingUpYCM
|
||||||
|
|
||||||
|
elif [ "uninstall" = "$MODE" ]; then
|
||||||
|
|
||||||
|
removeVimrc
|
||||||
|
|
||||||
|
if [ "" = "$VIM_DIR" ]; then
|
||||||
|
removeVim
|
||||||
|
else
|
||||||
|
removeVim $VIM_DIR
|
||||||
|
fi
|
||||||
|
|
||||||
|
removeYCM
|
||||||
|
|
||||||
|
$user apt autoremove
|
||||||
|
$user apt clean
|
||||||
|
else
|
||||||
|
|
||||||
|
echo "Wrong argument to --mode option"\
|
||||||
|
"Use env_set.sh --help"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|||||||
38
vim-plugin.txt
Normal file
38
vim-plugin.txt
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
Plugins:
|
||||||
|
----------
|
||||||
|
|
||||||
|
Command: :set packpath
|
||||||
|
|
||||||
|
To see all the path vim will search for plugins.
|
||||||
|
|
||||||
|
--> Where Packages are stored:
|
||||||
|
|
||||||
|
{packpath}/pack/{package-name}
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
/home/junet/.vim/pack/git-plugins
|
||||||
|
/home/junet/.vim/pack/myplugins
|
||||||
|
|
||||||
|
{packpath}/pack/{package-name}/start/{plugin-name}
|
||||||
|
|
||||||
|
To load a package along with all the plugins automatically when
|
||||||
|
vim starts. Use start/ directory inside package-directory.
|
||||||
|
|
||||||
|
|
||||||
|
{packpath}/pack/{package-name}/opt/{plugin-name}
|
||||||
|
|
||||||
|
To not load automatically, but remain available to load
|
||||||
|
during vim runtime.
|
||||||
|
|
||||||
|
To load a plugin in opt/ directory. Use command:
|
||||||
|
|
||||||
|
:packadd {plugin-directory-name}
|
||||||
|
|
||||||
|
|
||||||
|
For example:
|
||||||
|
|
||||||
|
:packadd vim-fugitive
|
||||||
|
|
||||||
|
This searches for "pack/*/opt/vim-fugitive" in the packpath.
|
||||||
|
Example: ~/.vim/pack/git-plugins/opt/vim-fugitive
|
||||||
|
|
||||||
Reference in New Issue
Block a user