vim環境快速設定

每次安裝新的 debian 系統時,總要自行設定自己習慣的環境

每次都要手動去改那些設定檔,有些麻煩,也有些懶

所以就寫了底下的 shell script

因為是初學,所以裡面寫了詳細的註解

#!/bin/bash

#檢查vim是否存在
# -e 檢查檔案是否 exist (存在) 不論是否為檔案、目錄、軟連結
# $? 回傳值為0 則條件成立(存在),執行 then 後面的內容
# $? 回傳值為1 則條件不成立(不存在),直接執行 else 後面的內容
if [ -e /usr/bin/vim ] ; then
	echo "檢查 vim 已安裝,程式繼續設定vim環境"
else
	echo "開始安裝vim"
	sleep 1
	aptitude install vim -y
fi

#設定 vimrc 將搜尋到的字加hilight,底下判斷式將判斷是否有修改過 vimrc 此檔了
#判定方法:搜尋vimrc此檔內是否有 "hlsearch" 字串
#找到的話則執行 then 後面的指令,即只顯示 已修改過了 之後就離開這個判斷式
#找不到的話則執行 else 後面的指令
if grep "hlsearch" /etc/vim/vimrc > /dev/null ; then
	echo "提示:檔案已修改過了"
else
	cp /etc/vim/vimrc /etc/vim/vimrc.bak
	sed -in 's/\"syntax on/syntax on/g' /etc/vim/vimrc
	sed -in 's/\"set background=dark/set background=dark/g' /etc/vim/vimrc
	sed -in 's/\"set ignorecase/set ignorecase/g' /etc/vim/vimrc
	echo "set hlsearch" >> /etc/vim/vimrc
	echo "\"↑將搜尋到的字加hilight" >> /etc/vim/vimrc
	echo "highlight Search term=reverse ctermbg=4 ctermfg=7" >> /etc/vim/vimrc
	echo "\"↑將搜尋到的字由土黃色變成深藍色" >> /etc/vim/vimrc

fi

#指令環境設定
echo "請選擇指令簡化環境要套用在 1 全系統 或 2 個人環境"
read -p "請輸入數字 1 或 2: " choice
case $choice in
1) filename="/etc/profile" ;;
2) filename=$HOME/.bashrc ;;
# $HOME 為系統保留變數 即家目錄
esac

#底下判斷式檢查是否有修改過了
if grep "history" $filename > /dev/null ; then
	echo "提示:檔案已修改過了"
else
	echo "# Added aliases" >> $filename
	echo "alias cls='clear'" >> $filename
	echo "alias ls='ls --color=auto -F'" >> $filename
	echo "alias dir='ls -alh --color=auto -F'" >> $filename
	echo "alias ll='ls -lh --color=auto -F'" >> $filename
	echo "alias la='ls -alh --color=auto -F'" >> $filename
	echo "alias md="mkdir"" >> $filename
	echo "alias rd="rmdir"" >> $filename
	echo "#history加時間日期" >> $filename
	echo "export HISTTIMEFORMAT='%F %T '" >> $filename
	echo "#history剔除連續重覆的指令" >> $filename
	echo "export HISTCONTROL=ignoredups" >> $filename
fi

[note]參考資料:Bash Shell Script教學與心得鳥哥、[/note]


補充說明:

若要讓 vim 記住上一次編輯檔案時游標所在的位置可以這樣設定。
大約在 26行左右的位置已經有底下內容了,將前面的 ” 拿掉即可,要是找不到的話自行加在最後方也行

" Uncomment the following to have Vim jump to the last position when
" reopening a file
if has("autocmd")
  au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
endif

分類: bash。這篇內容的永久連結

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *