" shift 回車, 在下一行輸入
inoremap <s-cr> <end><cr>
" ctrl 回車,行尾
inoremap <c-cr> <esc>A
不知道為什么這兩個鍵在ubuntu18.04 映射不出來
全部的vimrc:
" ================================================================
" Author: Dgimo
" ================================================================
" 關閉兼容模式, 默認情況下, Vim 會以兼容 Vi 的模式運行, 所以一定要關閉.
set nocompatible
" ================================================================
" 環境判斷
" ================================================================
" 判斷是 Windows 還是 Linux.
let g:isWindows=0
let g:isLinux=0
if (has("win32") || has("win64"))
let g:isWindows=1
else
let g:isLinux=1
endif
" 判斷是終端還是 gVim
let g:isGUI=1
if has("gui_running")
let g:isGUI=1
else
let g:isGUI=0
endif
" ================================================================
" gVim 原有配置
" ================================================================
if (g:isWindows)
" 加載一些默認配置
source $VIMRUNTIME/vimrc_example.vim
" 模仿 Windows 快捷鍵, 例如 ctrl-s, ctrl-c, ctrl-v 等等
source $VIMRUNTIME/mswin.vim
" 模仿 Windows 的行為, 這一行很重要, 沒有這行的話, 最大化經常出問題.
behave mswin
elseif (g:isLinux)
if (g:isGUI)
" Source a global configuration file if available
if filereadable("/etc/vim/gvimrc.local")
source /etc/vim/gvimrc.local
endif
else
set mouse=a " 在任何模式下啟用滑鼠
set t_Co=256 " 在終端啟用256色
set backspace=2 " 設定退格鍵可用
" Source a global configuration file if available
if filereadable("/etc/vim/vimrc.local")
source /etc/vim/vimrc.local
endif
endif
endif
" ================================================================
" UI和基本配置
" ================================================================
" 設定字體
if (g:isWindows)
set guifont=Consolas:h11
elseif (g:isLinux)
set guifont=Monospace\ Regular\ 14
endif
" GUI 的設定
if (g:isGUI)
" 關閉選單
set guioptions-=m
" 關閉工具列
set guioptions-=T
" 關閉左側滾動條
set guioptions-=L
" 關閉右側滾動條
set guioptions-=r
" 啟動時最大化
autocmd GUIEnter * simalt ~x
endif
" 只在需要的時候才重新繪制界面(例如宏執行程序中不需要重繪界面)
set lazyredraw
" 發生錯誤時不要響鈴, 也不要閃爍
set noerrorbells
set belloff=all
" 分割視窗時保持相等的寬/高
set equalalways
" 豎直split時,在右邊開啟
set splitright
" 水平split時,在下邊開啟
set splitbelow
" 全域復制粘貼
set clipboard=unnamedplus
" ================================================================
" 編碼
" ================================================================
" 設定vim內部編碼
set encoding=utf-8
" 設定編輯檔案時的編碼
set fileencoding=utf-8
" 設定 Vim 能識別的編碼
set fileencodings=ucs-bom,utf-8,cp936,gb18030,gb2312,big5,cuc-jp,cuc-kr,latin
" 設定終端模式(非 GUI 模式)下的編碼
set termencoding=utf-8
" 防止特殊符號無法顯示
set ambiwidth=double
" 解決 console 輸出亂碼
language messages zh_CN.utf-8
" ================================================================
" 檔案相關配置
"
" 關于備份檔案的說明: 備份檔案, 臨時檔案, undo 檔案, 最好的做法是把
" 他們配置到單獨的檔案夾里, 我這里暫時都不讓生成了, 以后可以按需要修改.
" 例如:
" set directory=~/.vim/.swp//
" set backupdir=~/.vim/.backup//
" set undodir=~/.vim/.undo//
" 注意最后要有兩道//, 表示檔案名使用絕對路徑
" ================================================================
" 自動檢測檔案型別和縮進格式, 并根據檔案型別加載插件
filetype plugin indent on
" 檔案被外部改動后, 自動加載
set autoread
" 不生成備份檔案
set nobackup
" 不生成臨時檔案
set noswapfile
" 不生成 undo 檔案
set noundofile
" ================================================================
" 編輯器配置
" ================================================================
" 顯示行號
set number
" 顯示語法高亮
syntax enable
syntax on
" 顯示 tab(>---), 空格(^), 換行(?)
set list
set listchars=tab:>-,trail:^ ",eol:?
" 突出顯示當前行
set cursorline
" 開啟自動縮進
set autoindent
" 智能縮進
set smartindent
" 編輯時按一個 Tab 鍵相當于輸入4個空格
set tabstop=4
" 格式化時縮進尺寸為4個空格
set shiftwidth=4
" 讓 Vim 把連續的空格視為一個 Tab, 洗掉時可以一次刪掉一個 Tab 的空格數量
set softtabstop=4
" 把制表符轉換為多個空格, 具體空格數量參考 tabstop 和 shiftwidth
set expandtab
" 在行和段的開始出使用 Tab
set smarttab
" 合并兩行中文時, 不在中間加空格
set formatoptions+=B
" 合并行時不添加多余空格
set nojoinspaces
" ================================================================
" 搜索和匹配
" ================================================================
" 高亮顯示匹配的括號
set showmatch
" 高亮顯示搜索到的關鍵字
set hlsearch
" 即時搜索
set incsearch
" 智能大小寫敏感, 只要有一個字母大寫, 就大小寫敏感, 否則不敏感
set ignorecase smartcase
" ================================================================
" 操作習慣和快捷鍵
" ================================================================
" 將 kk 配置成 esc
inoremap kk <esc>
" ctrl-h 游標左移一格
inoremap <c-h> <left>
" ctrl-j 垂直下移一行
" inoremap <c-j> <down>
" 下面這個組合比較巧妙, ctrl-o 可以進入臨時命令模式, 然后執行一次 gj
inoremap <c-j> <c-o>gj
" ctrl-k 垂直上移一行
" inoremap <c-k> <up>
inoremap <c-k> <c-o>gk
" ctrl-l 游標右移一格
inoremap <c-l> <right>
" 按 U 執行 redo
" noremap U <c-r>
" shift 回車, 在下一行輸入
inoremap <s-cr> <end><cr>
" ctrl 回車,行尾
inoremap <c-cr> <esc>A
" 在可視模式下使用p粘貼時不替換暫存器內容, 這里是利用了黑洞暫存器
vnoremap p "_dP
" 對于很長的行, vim會自動換行, 此時 j 或者 k 就會一下跳很多行,
" 使用 gk,gj 可以避免跳過多行, 但是不方便, 所以做了如下映射.
nnoremap k gk
nnoremap j gj
vnoremap k gk
vnoremap j gj
" 按 gb 跳轉到前一個標簽頁, 默認 gT, 按起來不方便
nnoremap gb gT
" ================================================================
" 主題
" ================================================================
colorscheme monokai " 設定主題為 molokai
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/36148.html
標籤:實用資料發布區
上一篇:python
