Skip to content

Commit

Permalink
vim: move our customizations to vimrc.local
Browse files Browse the repository at this point in the history
Revert vimrc.vim to Debian 12 defaults. This should prevent apt from
asking for confirmation when upgrading vim in the future.

vimrc.vim should be removed from management in a future commit.
  • Loading branch information
rrotter committed Dec 24, 2024
1 parent 60b4417 commit 0abd7e5
Show file tree
Hide file tree
Showing 4 changed files with 64 additions and 33 deletions.
8 changes: 8 additions & 0 deletions manifests/profile/vim.pp
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,19 @@
class nebula::profile::vim {
package { 'vim': }

# Default vimrc from Debian 12
# This is only here to eliminate our previous customizations
# Remove after December 2024
file { '/etc/vim/vimrc':
content => template('nebula/profile/vim/vimrc.vim.erb'),
require => Package['vim'],
}

file { '/etc/vim/vimrc.local':
content => template('nebula/profile/vim/vimrc.local.erb'),
require => Package['vim'],
}

# Write an empty /root/.vimrc to prevent vim from automatically
# loading /usr/share/vim/vim*/defaults.vim
file { '/root/.vimrc':
Expand Down
6 changes: 3 additions & 3 deletions spec/classes/profile/vim_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,18 @@
it { is_expected.to contain_package("vim") }

it do
expect(subject).to contain_file("/etc/vim/vimrc")
expect(subject).to contain_file("/etc/vim/vimrc.local")
.that_requires("Package[vim]")
end

[
%r{^set mouse=$}
].each do |line|
it { is_expected.to contain_file("/etc/vim/vimrc").with_content(line) }
it { is_expected.to contain_file("/etc/vim/vimrc.local").with_content(line) }
end

it "never enables any mouse usage of any kind" do
expect(subject).to contain_file("/etc/vim/vimrc").without_content(
expect(subject).to contain_file("/etc/vim/vimrc.local").without_content(
%r{^set mouse=.+$}
)
end
Expand Down
16 changes: 16 additions & 0 deletions templates/profile/vim/vimrc.local.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
" Managed by puppet (nebula/profile/base/vimrc.vim.erb)

syntax on

if has("autocmd")
filetype plugin indent on
endif

set showcmd " Show (partial) command in status line.
set showmatch " Show matching brackets.
set ignorecase " Do case insensitive matching
set smartcase " Do smart case matching
set incsearch " Incremental search
set autowrite " Automatically save before commands like :next and :make
set hidden " Hide buffers when they are abandoned
set mouse= " No mouse
67 changes: 37 additions & 30 deletions templates/profile/vim/vimrc.vim.erb
Original file line number Diff line number Diff line change
@@ -1,55 +1,62 @@
" Managed by puppet (nebula/profile/base/vimrc.vim.erb)

" All system-wide defaults are set in $VIMRUNTIME/debian.vim (usually just
" /usr/share/vim/vimcurrent/debian.vim) and sourced by the call to :runtime
" you can find below. If you wish to change any of those settings, you should
" do it in this file (/etc/vim/vimrc), since debian.vim will be overwritten
" everytime an upgrade of the vim packages is performed. It is recommended to
" make changes after sourcing debian.vim since it alters the value of the
" 'compatible' option.

" This line should not be removed as it ensures that various options are
" properly set to work with the Vim-related packages available in Debian.
" $VIMRUNTIME refers to the versioned system directory where Vim stores its
" system runtime files -- /usr/share/vim/vim<version>.
"
" Vim will load $VIMRUNTIME/defaults.vim if the user does not have a vimrc.
" This happens after /etc/vim/vimrc(.local) are loaded, so it will override
" any settings in these files.
"
" If you don't want that to happen, uncomment the below line to prevent
" defaults.vim from being loaded.
" let g:skip_defaults_vim = 1
"
" If you would rather _use_ default.vim's settings, but have the system or
" user vimrc override its settings, then uncomment the line below.
" source $VIMRUNTIME/defaults.vim

" All Debian-specific settings are defined in $VIMRUNTIME/debian.vim and
" sourced by the call to :runtime you can find below. If you wish to change
" any of those settings, you should do it in this file or
" /etc/vim/vimrc.local, since debian.vim will be overwritten everytime an
" upgrade of the vim packages is performed. It is recommended to make changes
" after sourcing debian.vim so your settings take precedence.

runtime! debian.vim

" Uncomment the next line to make Vim more Vi-compatible
" NOTE: debian.vim sets 'nocompatible'. Setting 'compatible' changes numerous
" options, so any other options should be set AFTER setting 'compatible'.
" NOTE: debian.vim sets 'nocompatible'. Setting 'compatible' changes
" numerous options, so any other options should be set AFTER changing
" 'compatible'.
"set compatible

" Vim5 and later versions support syntax highlighting. Uncommenting the next
" line enables syntax highlighting by default.
syntax on
"syntax on

" If using a dark background within the editing area and syntax highlighting
" turn on this option as well
"set background=dark

" 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
"au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif

" Uncomment the following to have Vim load indentation rules and plugins
" according to the detected filetype.
if has("autocmd")
filetype plugin indent on
endif
"filetype plugin indent on

" The following are commented out as they cause vim to behave a lot
" differently from regular Vi. They are highly recommended though.
set showcmd " Show (partial) command in status line.
set showmatch " Show matching brackets.
set ignorecase " Do case insensitive matching
set smartcase " Do smart case matching
set incsearch " Incremental search
set autowrite " Automatically save before commands like :next and :make
set hidden " Hide buffers when they are abandoned
" set mouse=a " Enable mouse usage (all modes)
set mouse=
"set showcmd " Show (partial) command in status line.
"set showmatch " Show matching brackets.
"set ignorecase " Do case insensitive matching
"set smartcase " Do smart case matching
"set incsearch " Incremental search
"set autowrite " Automatically save before commands like :next and :make
"set hidden " Hide buffers when they are abandoned
"set mouse=a " Enable mouse usage (all modes)

" Source a global configuration file if available
if filereadable("/etc/vim/vimrc.local")
source /etc/vim/vimrc.local
endif

0 comments on commit 0abd7e5

Please sign in to comment.