Benutzer-Werkzeuge

Webseiten-Werkzeuge


vi_vim

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
vi_vim [2024-06-30 01:36:37] davidvi_vim [2026-06-23 17:06:12] (aktuell) – [setup] david
Zeile 8: Zeile 8:
   * '':q'': beenden, aber nur wenn keine änderungen vorgenommen wurden und alle vim fenster besucht wurden   * '':q'': beenden, aber nur wenn keine änderungen vorgenommen wurden und alle vim fenster besucht wurden
   * '':q!'': beenden ohne zu speichern   * '':q!'': beenden ohne zu speichern
-  * '':wq'': speichern und beenden, aber nur wenn alle vim fenster besucht wurden+  * '':wq'': speichern und beenden, aber nur wenn alle vim dateien/fenster besucht wurden
   * '':wq!'': speichern und beenden   * '':wq!'': speichern und beenden
   * '':x'': das gleiche wie '':wq'', aber nur speichern, wenn änderungen vorgenommen wurden   * '':x'': das gleiche wie '':wq'', aber nur speichern, wenn änderungen vorgenommen wurden
Zeile 15: Zeile 15:
  
 [[https://til.hashrocket.com/posts/2fdb6afb66-difference-between-wq-and-x|Difference Between :wq and :x]] [[https://til.hashrocket.com/posts/2fdb6afb66-difference-between-wq-and-x|Difference Between :wq and :x]]
 +
   * '':wq'' -> schreibt die Datei __immer__ und beendet dann ''vim''   * '':wq'' -> schreibt die Datei __immer__ und beendet dann ''vim''
   * '':x'' -> schreibt die Datei __nur dann__, wenn es Änderungen gegeben hat, und beendet dann ''vim''   * '':x'' -> schreibt die Datei __nur dann__, wenn es Änderungen gegeben hat, und beendet dann ''vim''
Zeile 28: Zeile 29:
  
  
-===== Automatischen Visual Mode mit Maus deaktivieren =====+===== vim config =====
  
-<code vim ~/.vimrc> 
-set mouse= 
-</code> 
  
-oder+==== setup ====
  
-  echo "set mouse=" >> ~/.vimrc+<code bash> 
 +# vim xdg dirs: ~/.config/vim, ~/.local/share/vim, ~/.local/state/vim 
 +vim_config_dir="${XDG_CONFIG_HOME:-${HOME}/.config}/vim" 
 +vim_data_dir="${XDG_DATA_HOME:-${HOME}/.local/share}/vim" 
 +vim_state_dir="${XDG_STATE_HOME:-${HOME}/.local/state}/vim"
  
 +# migrate old ~/.vim
 +test -d "${HOME}/.vim" && test ! -e "${vim_config_dir}" && mv "${HOME}/.vim" "${vim_config_dir}"
  
-===== minimale vim config =====+# create vim dirs that don't exist already 
 +mkdir -p "${vim_config_dir}" "${vim_data_dir}" "${vim_state_dir}"
  
-Damit die Farben sowohl bei weißem als auch bei schwarzem Hintergrund im ''vi''/''vim'' gut erkennbar sind, wird das ''colorscheme'' geändert.+# migrate old ~/.vimrc & ~/.viminfo 
 +test -f "${HOME}/.vimrc" && test ! -e "${vim_config_dir}/vimrc" && mv "${HOME}/.vimrc" "${vim_config_dir}/vimrc" && mv "${HOME}/.viminfo" "${vim_state_dir}/viminfo"
  
-<code vim> +# optional: disable mouse 
-cat << 'EOF' > ~/.vimrc+echo "set mouse=" >> "${vim_config_dir}/vimrc" 
 +echo "set ttymouse=" >> "${vim_config_dir}/vimrc" 
 +</code
 + 
 + 
 +==== minimal ==== 
 + 
 +  * Maus deaktivieren: **Niemals** ''set mouse-=a'' setzen, sondern immer ''set mouse=''
 +  * Damit die Farben sowohl bei weißem als auch bei schwarzem Hintergrund im ''vi''/''vim'' gut erkennbar sind, wird das ''colorscheme'' geändert (siehe auch ''highlight'' weiter unten) 
 + 
 +<code bash
 +cat << 'EOF' > ~/.config/vim/vimrc
 unlet! skip_defaults_vim unlet! skip_defaults_vim
 source $VIMRUNTIME/defaults.vim source $VIMRUNTIME/defaults.vim
-set nocompatible+source $VIMRUNTIME/xdg.vim
  
-"colorscheme delek 
-"colorscheme pablo 
 colorscheme ron colorscheme ron
 filetype plugin indent off filetype plugin indent off
Zeile 58: Zeile 73:
 set fileformats=unix,dos set fileformats=unix,dos
 set mouse= set mouse=
 +set ttymouse=
  
 set secure set secure
Zeile 64: Zeile 80:
  
  
-===== ambitioniertere vim config =====+==== erweitert ====
  
-<code vim ~/.vimrc>+  * inkl. xdg base dir spec 
 +  * siehe dotfiles repo für aktuellste version: [[https://gitlab.com/m4st3rfl1tz3r/dotfiles/dotfiles/-/tree/main/.config/vim|dotfiles linux]] / [[https://gitlab.com/m4st3rfl1tz3r/dotfiles/dotfiles-macos/-/tree/main/.config/vim|dotfiles macos]] 
 + 
 +<code vim ~/.config/vim/vimrc>
 unlet! skip_defaults_vim unlet! skip_defaults_vim
 source $VIMRUNTIME/defaults.vim source $VIMRUNTIME/defaults.vim
-set nocompatible+if empty($XDG_CONFIG_HOME) | source ~/.config/vim/xdg.vim | else | source $XDG_CONFIG_HOME/vim/xdg.vim | endif
  
 packadd! matchit packadd! matchit
  
-colorscheme pablo+colorscheme torte
 filetype plugin indent on filetype plugin indent on
 syntax on syntax on
Zeile 87: Zeile 106:
 set incsearch set incsearch
 set list set list
-set listchars=tab:\,trail:·,extends:≫,precedes:≪,eol:,nbsp:␣+set listchars=eol:⏎,tab:\ ,trail:·,extends:≫,precedes:≪,conceal:,nbsp:␣
 set mouse= set mouse=
 set number set number
Zeile 107: Zeile 126:
 set ttimeout set ttimeout
 set ttimeoutlen=-1 set ttimeoutlen=-1
 +set ttymouse=
 +set wildmenu
 +
 +set secure
 +</code>
 +
 +<code vim ~/.config/vim/xdg.vim>
 +" source $VIMRUNTIME/xdg.vim
 +" to update from upstream xdg.vim run this vim command inside this file:
 +" :6,$delete | 5read $VIMRUNTIME/xdg.vim
 +" then uncomment the xdg options below again
 +
 +" XDG Base Directory support
 +" This script sets up paths for XDG compliance.
 +" Maintainer: The Vim Project <https://github.com/vim/vim>
 +" Last Change: 2026 Feb 19
 +
 +let s:config = empty($XDG_CONFIG_HOME) ? expand("~/.config") : expand("$XDG_CONFIG_HOME")
 +let s:data   = empty($XDG_DATA_HOME)   ? expand("~/.local/share") : expand("$XDG_DATA_HOME")
 +let s:state  = empty($XDG_STATE_HOME)  ? expand("~/.local/state") : expand("$XDG_STATE_HOME")
 +
 +if isdirectory(s:config .. '/vim')
 +  func s:mkvimdir(dir)
 +    if !isdirectory(a:dir)
 +      call mkdir(a:dir, 'p', 0700)
 +    endif
 +    return a:dir
 +  endfunc
 +
 +  " Use Data for packages, prevent duplicates
 +  if index(split(&packpath, ','), s:data .. '/vim') == -1
 +    exe $"set packpath^={s:data}/vim"
 +    exe $"set packpath+={s:data}/vim/after"
 +  endif
 +
 +  " These options are not set by default because they change the behavior of
 +  " where files are saved. Uncomment them if you want to fully move all
 +  " transient/persistent files to XDG directories.
 +  " Note: Undo/Views/Spell are placed in DATA_HOME as they are persistent,
 +  " while Swap/Backups use STATE_HOME as transient session state.
 +
 +  " Persistent Data:
 +  let &undodir = s:mkvimdir(s:data .. '/vim/undo')
 +  let &viewdir = s:mkvimdir(s:data .. '/vim/view')
 +  let g:netrw_home = s:mkvimdir(s:data .. '/vim')
 +  call s:mkvimdir(s:data .. '/vim/spell')
 +
 +  " Transient State:
 +  let &viminfofile = s:mkvimdir(s:state .. '/vim') .. '/viminfo'
 +  let &directory = s:mkvimdir(s:state .. '/vim/swap'  .. '//'
 +  let &backupdir = s:mkvimdir(s:state .. '/vim/backup') .. '//'
 +
 +  delfunction s:mkvimdir
 +endif
 +
 +unlet s:config s:data s:state
 +</code>
 +
 +
 +==== alternativ ====
 +
 +<code vim ~/.config/vim/vimrc>
 +unlet! skip_defaults_vim
 +source $VIMRUNTIME/defaults.vim
 +source $VIMRUNTIME/xdg.vim
 +
 +packadd! matchit
 +
 +colorscheme slate
 +"colorscheme darkblue
 +"colorscheme desert
 +filetype plugin indent on
 +syntax on
 +
 +highlight Normal cterm=NONE ctermbg=NONE ctermfg=NONE gui=NONE guibg=NONE guifg=NONE
 +
 +"set autoindent
 +set backspace=indent,eol,start
 +set encoding=utf-8
 +set fileformats=unix,dos
 +set hlsearch
 +set ignorecase
 +set incsearch
 +"set list
 +"set listchars=eol:⏎,tab:→\ ,trail:·,extends:≫,precedes:≪,conceal:⋯,nbsp:
 +set mouse=
 +set number
 +set relativenumber
 +set ruler
 +set scrolloff=5
 +set shiftwidth=0
 +set showcmd
 +set showmatch
 +set showmode
 +set signcolumn=number
 +set smartcase
 +"set smartindent
 +set smarttab
 +set smoothscroll
 +set softtabstop=-1
 +set tabstop=4
 +set timeout
 +set ttimeout
 +set ttimeoutlen=-1
 +set ttymouse=
 set wildmenu set wildmenu
  
/home/http/wiki/data/attic/vi_vim.1719711397.txt · Zuletzt geändert: von david