Created
December 16, 2025 20:56
-
-
Save coffnix/b78b831ff24d1f19fbfc3a76066177bb to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| scriptencoding utf-8 | |
| " ^^ Please leave the above line at the start of the file. | |
| " Written by Aron Griffis <agriffis@gentoo.org> | |
| " Modified by Ryan Phillips <rphillips@gentoo.org> | |
| " Modified some more by Ciaran McCreesh <ciaranm@gentoo.org> | |
| " Added Redhat's vimrc info by Seemant Kulleen <seemant@gentoo.org> | |
| " You can override any of these settings on a global basis via the | |
| " "/etc/vim/vimrc.local" file, and on a per-user basis via "~/.vimrc". You may | |
| " need to create these. | |
| " {{{ General settings | |
| " The following are some sensible defaults for Vim for most users. | |
| " We attempt to change as little as possible from Vim's defaults, | |
| " deviating only where it makes sense | |
| set nocompatible " Use Vim defaults (much better!) | |
| set bs=2 " Allow backspacing over everything in insert mode | |
| set ai " Auto-indenting off to allow pasting to work by default | |
| set history=50 " keep 50 lines of command history | |
| set ruler " Show the cursor position all the time | |
| set noexpandtab | |
| set ts=4 sw=4 | |
| set viminfo='20,\"500 " Keep a .viminfo file. | |
| " Don't use Ex mode, use Q for formatting | |
| map Q gq | |
| " When doing tab completion, give the following files lower priority. You may | |
| " wish to set 'wildignore' to completely ignore files, and 'wildmenu' to enable | |
| " enhanced tab completion. These can be done in the user vimrc file. | |
| set suffixes+=.info,.aux,.log,.dvi,.bbl,.out,.o,.lo | |
| " When displaying line numbers, don't use an annoyingly wide number column. This | |
| " doesn't enable line numbers -- :set number will do that. The value given is a | |
| " minimum width to use for the number column, not a fixed size. | |
| if v:version >= 700 | |
| set numberwidth=3 | |
| endif | |
| " }}} | |
| " {{{ Modeline settings | |
| set modeline | |
| " }}} | |
| " {{{ Locale settings | |
| " Try to come up with some nice sane GUI fonts. Also try to set a sensible | |
| " value for fileencodings based upon locale. These can all be overridden in | |
| " the user vimrc file. | |
| if v:lang =~? "^ko" | |
| set fileencodings=euc-kr | |
| set guifontset=-*-*-medium-r-normal--16-*-*-*-*-*-*-* | |
| elseif v:lang =~? "^ja_JP" | |
| set fileencodings=euc-jp | |
| set guifontset=-misc-fixed-medium-r-normal--14-*-*-*-*-*-*-* | |
| elseif v:lang =~? "^zh_TW" | |
| set fileencodings=big5 | |
| set guifontset=-sony-fixed-medium-r-normal--16-150-75-75-c-80-iso8859-1,-taipei-fixed-medium-r-normal--16-150-75-75-c-160-big5-0 | |
| elseif v:lang =~? "^zh_CN" | |
| set fileencodings=gb2312 | |
| set guifontset=*-r-* | |
| endif | |
| " If we have a BOM, always honour that rather than trying to guess. | |
| if &fileencodings !~? "ucs-bom" | |
| set fileencodings^=ucs-bom | |
| endif | |
| " Always check for UTF-8 when trying to determine encodings. | |
| if &fileencodings !~? "utf-8" | |
| " If we have to add this, the default encoding is not Unicode. | |
| " We use this fact later to revert to the default encoding in plaintext/empty | |
| " files. | |
| let g:added_fenc_utf8 = 1 | |
| set fileencodings+=utf-8 | |
| endif | |
| " Make sure we have a sane fallback for encoding detection | |
| if &fileencodings !~? "default" | |
| set fileencodings+=default | |
| endif | |
| " }}} | |
| " {{{ Syntax highlighting settings | |
| " Switch syntax highlighting on, when the terminal has colors | |
| " Also switch on highlighting the last used search pattern. | |
| if &t_Co > 2 || has("gui_running") | |
| syntax on | |
| set hlsearch | |
| endif | |
| " }}} | |
| " {{{ Terminal fixes | |
| if &term ==? "xterm" | |
| set t_Sb=^[4%dm | |
| set t_Sf=^[3%dm | |
| set ttymouse=xterm2 | |
| endif | |
| if &term ==? "gnome" && has("eval") | |
| " Set useful keys that vim doesn't discover via termcap but are in the | |
| " builtin xterm termcap. See bug #122562. We use exec to avoid having to | |
| " include raw escapes in the file. | |
| exec "set <C-Left>=\eO5D" | |
| exec "set <C-Right>=\eO5C" | |
| endif | |
| " }}} | |
| " {{{ Filetype plugin settings | |
| " Enable plugin-provided filetype settings, but only if the ftplugin | |
| " directory exists (which it won't on livecds, for example). | |
| if isdirectory(expand("$VIMRUNTIME/ftplugin")) | |
| filetype plugin on | |
| " Uncomment the next line (or copy to your ~/.vimrc) for plugin-provided | |
| " indent settings. Some people don't like these, so we won't turn them on by | |
| " default. | |
| " filetype indent on | |
| endif | |
| " }}} | |
| " {{{ Fix &shell, see bug #101665. | |
| if "" == &shell | |
| if executable("/bin/bash") | |
| set shell=/bin/bash | |
| elseif executable("/bin/sh") | |
| set shell=/bin/sh | |
| endif | |
| endif | |
| "}}} | |
| " {{{ Our default /bin/sh is bash, not ksh, so syntax highlighting for .sh | |
| " files should default to bash. See :help sh-syntax and bug #101819. | |
| if has("eval") | |
| let is_bash=1 | |
| endif | |
| " }}} | |
| " {{{ Autocommands | |
| if has("autocmd") | |
| augroup gentoo | |
| au! | |
| " Gentoo-specific settings for ebuilds. These are the federally-mandated | |
| " required tab settings. See the following for more information: | |
| " http://www.gentoo.org/proj/en/devrel/handbook/handbook.xml | |
| " Note that the rules below are very minimal and don't cover everything. | |
| " Better to emerge app-vim/gentoo-syntax, which provides full syntax, | |
| " filetype and indent settings for all things Gentoo. | |
| au BufRead,BufNewFile *.e{build,class} let is_bash=1|setfiletype sh | |
| au BufRead,BufNewFile *.e{build,class} set ts=4 sw=4 noexpandtab | |
| " When editing a file, always jump to the last cursor position | |
| autocmd BufReadPost * | |
| \ if ! exists("g:leave_my_cursor_position_alone") | | |
| \ if line("'\"") > 0 && line ("'\"") <= line("$") | | |
| \ exe "normal g'\"" | | |
| \ endif | | |
| \ endif | |
| " When editing a crontab file, set backupcopy to yes rather than auto. See | |
| " :help crontab and bug #53437. | |
| autocmd FileType crontab set backupcopy=yes | |
| " If we previously detected that the default encoding is not UTF-8 | |
| " (g:added_fenc_utf8), assume that a file with only ASCII characters (or no | |
| " characters at all) isn't a Unicode file, but is in the default encoding. | |
| " Except of course if a byte-order mark is in effect. | |
| autocmd BufReadPost * | |
| \ if exists("g:added_fenc_utf8") && &fileencoding == "utf-8" && | |
| \ ! &bomb && search('[\x80-\xFF]','nw') == 0 && &modifiable | | |
| \ set fileencoding= | | |
| \ endif | |
| augroup END | |
| endif " has("autocmd") | |
| " }}} | |
| " We don't want VIM to load their own built-in defaults, preferring ours here | |
| " instead: | |
| let g:skip_defaults_vim = 1 | |
| " {{{ vimrc.local | |
| if filereadable("/etc/vim/vimrc.local") | |
| source /etc/vim/vimrc.local | |
| endif | |
| " }}} | |
| autocmd Syntax * syn match ExtraWhitespace /\S\s\+$/ | |
| set listchars=tab:>-,trail:~,extends:>,precedes:< | |
| set list | |
| function! PasteFriendly() | |
| if &list | |
| setlocal nolist noai | |
| echom "Whitespace visibility and auto-indent disabled for easier copy/paste." | |
| else | |
| setlocal list ai | |
| echom "Whitespace visibility and auto-indent enabled for easier editing." | |
| endif | |
| endfunction | |
| function! Foo() | |
| if ! &list && ! &ai | |
| return "on " | |
| else | |
| return "off" | |
| fi | |
| endfunction | |
| nnoremap <F3> :call PasteFriendly()<CR> | |
| inoremap <F3> <C-o>:call PasteFriendly()<CR> | |
| cnoremap <F3> <C-c>:call PasteFriendly()<CR> | |
| set laststatus=2 | |
| set statusline= " clear the statusline for when vimrc is reloaded | |
| set statusline+=%-3.3n\ " buffer number | |
| set statusline+=%f\ " file name | |
| set statusline+=%h%m%r%w " flags | |
| set statusline+=[%{strlen(&ft)?&ft:'none'}, " filetype | |
| set statusline+=%{strlen(&fenc)?&fenc:&enc}, " encoding | |
| set statusline+=%{&fileformat}] " file format | |
| set statusline+=%=\ [F3]:\ PasteMode\ %{Foo()}\ \ \ " right align | |
| set statusline+=%-14.(%l,%c%V%)\ %<%P " offset | |
| hi Comment ctermfg=cyan | |
| hi SpecialKey ctermfg=darkblue | |
| hi StatusLine term=reverse ctermbg=white ctermfg=darkblue gui=undercurl guisp=Magenta | |
| " vim: set fenc=utf-8 tw=80 sw=2 sts=2 et : |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment