mirror of
				https://github.com/saltstack-formulas/users-formula.git
				synced 2025-10-31 00:23:58 +01:00 
			
		
		
		
	Added vimrc extension to users-formula
This will ensure that a given vimrc file in a users home dir is managed
Default it will search for a vimrc in salt://users/files/vimrc/{{ username
}}/vimrc
If this isn't found it will install salt://users/files/vimrc/vimrc
			
			
This commit is contained in:
		
							parent
							
								
									605711f1a4
								
							
						
					
					
						commit
						b4acac9de7
					
				
							
								
								
									
										160
									
								
								users/files/vimrc/vimrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										160
									
								
								users/files/vimrc/vimrc
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,160 @@ | |||||||
|  | " URL: http://vim.wikia.com/wiki/Example_vimrc | ||||||
|  | " Authors: http://vim.wikia.com/wiki/Vim_on_Freenode | ||||||
|  | " Description: A minimal, but feature rich, example .vimrc. If you are a | ||||||
|  | "              newbie, basing your first .vimrc on this file is a good choice. | ||||||
|  | "              If you're a more advanced user, building your own .vimrc based | ||||||
|  | "              on this file is still a good idea. | ||||||
|  | 
 | ||||||
|  | "------------------------------------------------------------ | ||||||
|  | " Features {{{1 | ||||||
|  | " | ||||||
|  | " These options and commands enable some very useful features in Vim, that | ||||||
|  | " no user should have to live without. | ||||||
|  | 
 | ||||||
|  | " Set 'nocompatible' to ward off unexpected things that your distro might | ||||||
|  | " have made, as well as sanely reset options when re-sourcing .vimrc | ||||||
|  | set nocompatible | ||||||
|  | 
 | ||||||
|  | " Attempt to determine the type of a file based on its name and possibly its | ||||||
|  | " contents. Use this to allow intelligent auto-indenting for each filetype, | ||||||
|  | " and for plugins that are filetype specific. | ||||||
|  | filetype indent plugin on | ||||||
|  | 
 | ||||||
|  | " Enable syntax highlighting | ||||||
|  | syntax on | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | "------------------------------------------------------------ | ||||||
|  | " Must have options {{{1 | ||||||
|  | " | ||||||
|  | " These are highly recommended options. | ||||||
|  | 
 | ||||||
|  | " Vim with default settings does not allow easy switching between multiple files | ||||||
|  | " in the same editor window. Users can use multiple split windows or multiple | ||||||
|  | " tab pages to edit multiple files, but it is still best to enable an option to | ||||||
|  | " allow easier switching between files. | ||||||
|  | " | ||||||
|  | " One such option is the 'hidden' option, which allows you to re-use the same | ||||||
|  | " window and switch from an unsaved buffer without saving it first. Also allows | ||||||
|  | " you to keep an undo history for multiple files when re-using the same window | ||||||
|  | " in this way. Note that using persistent undo also lets you undo in multiple | ||||||
|  | " files even in the same window, but is less efficient and is actually designed | ||||||
|  | " for keeping undo history after closing Vim entirely. Vim will complain if you | ||||||
|  | " try to quit without saving, and swap files will keep you safe if your computer | ||||||
|  | " crashes. | ||||||
|  | set hidden | ||||||
|  | 
 | ||||||
|  | " Note that not everyone likes working this way (with the hidden option). | ||||||
|  | " Alternatives include using tabs or split windows instead of re-using the same | ||||||
|  | " window as mentioned above, and/or either of the following options: | ||||||
|  | " set confirm | ||||||
|  | " set autowriteall | ||||||
|  | 
 | ||||||
|  | " Better command-line completion | ||||||
|  | set wildmenu | ||||||
|  | 
 | ||||||
|  | " Show partial commands in the last line of the screen | ||||||
|  | set showcmd | ||||||
|  | 
 | ||||||
|  | " Highlight searches (use <C-L> to temporarily turn off highlighting; see the | ||||||
|  | " mapping of <C-L> below) | ||||||
|  | set hlsearch | ||||||
|  | 
 | ||||||
|  | " Modelines have historically been a source of security vulnerabilities. As | ||||||
|  | " such, it may be a good idea to disable them and use the securemodelines | ||||||
|  | " script, <http://www.vim.org/scripts/script.php?script_id=1876>. | ||||||
|  | " set nomodeline | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | "------------------------------------------------------------ | ||||||
|  | " Usability options {{{1 | ||||||
|  | " | ||||||
|  | " These are options that users frequently set in their .vimrc. Some of them | ||||||
|  | " change Vim's behaviour in ways which deviate from the true Vi way, but | ||||||
|  | " which are considered to add usability. Which, if any, of these options to | ||||||
|  | " use is very much a personal preference, but they are harmless. | ||||||
|  | 
 | ||||||
|  | " Use case insensitive search, except when using capital letters | ||||||
|  | set ignorecase | ||||||
|  | set smartcase | ||||||
|  | 
 | ||||||
|  | " Allow backspacing over autoindent, line breaks and start of insert action | ||||||
|  | set backspace=indent,eol,start | ||||||
|  | 
 | ||||||
|  | " When opening a new line and no filetype-specific indenting is enabled, keep | ||||||
|  | " the same indent as the line you're currently on. Useful for READMEs, etc. | ||||||
|  | set autoindent | ||||||
|  | 
 | ||||||
|  | " Stop certain movements from always going to the first character of a line. | ||||||
|  | " While this behaviour deviates from that of Vi, it does what most users | ||||||
|  | " coming from other editors would expect. | ||||||
|  | set nostartofline | ||||||
|  | 
 | ||||||
|  | " Display the cursor position on the last line of the screen or in the status | ||||||
|  | " line of a window | ||||||
|  | set ruler | ||||||
|  | 
 | ||||||
|  | " Always display the status line, even if only one window is displayed | ||||||
|  | set laststatus=2 | ||||||
|  | 
 | ||||||
|  | " Instead of failing a command because of unsaved changes, instead raise a | ||||||
|  | " dialogue asking if you wish to save changed files. | ||||||
|  | set confirm | ||||||
|  | 
 | ||||||
|  | " Use visual bell instead of beeping when doing something wrong | ||||||
|  | set visualbell | ||||||
|  | 
 | ||||||
|  | " And reset the terminal code for the visual bell. If visualbell is set, and | ||||||
|  | " this line is also included, vim will neither flash nor beep. If visualbell | ||||||
|  | " is unset, this does nothing. | ||||||
|  | set t_vb= | ||||||
|  | 
 | ||||||
|  | " Enable use of the mouse for all modes | ||||||
|  | set mouse=a | ||||||
|  | 
 | ||||||
|  | " Set the command window height to 2 lines, to avoid many cases of having to | ||||||
|  | " "press <Enter> to continue" | ||||||
|  | set cmdheight=2 | ||||||
|  | 
 | ||||||
|  | " Display line numbers on the left | ||||||
|  | set number | ||||||
|  | 
 | ||||||
|  | " Quickly time out on keycodes, but never time out on mappings | ||||||
|  | set notimeout ttimeout ttimeoutlen=200 | ||||||
|  | 
 | ||||||
|  | " Use <F11> to toggle between 'paste' and 'nopaste' | ||||||
|  | set pastetoggle=<F11> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | "------------------------------------------------------------ | ||||||
|  | " Indentation options {{{1 | ||||||
|  | " | ||||||
|  | " Indentation settings according to personal preference. | ||||||
|  | 
 | ||||||
|  | " Indentation settings for using 4 spaces instead of tabs. | ||||||
|  | " Do not change 'tabstop' from its default value of 8 with this setup. | ||||||
|  | set shiftwidth=4 | ||||||
|  | set softtabstop=4 | ||||||
|  | set expandtab | ||||||
|  | 
 | ||||||
|  | " Indentation settings for using hard tabs for indent. Display tabs as | ||||||
|  | " four characters wide. | ||||||
|  | "set shiftwidth=4 | ||||||
|  | "set tabstop=4 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | "------------------------------------------------------------ | ||||||
|  | " Mappings {{{1 | ||||||
|  | " | ||||||
|  | " Useful mappings | ||||||
|  | 
 | ||||||
|  | " Map Y to act like D and C, i.e. to yank until EOL, rather than act as yy, | ||||||
|  | " which is the default | ||||||
|  | map Y y$ | ||||||
|  | 
 | ||||||
|  | " Map <C-L> (redraw screen) to also turn off search highlighting until the | ||||||
|  | " next search | ||||||
|  | nnoremap <C-L> :nohl<CR><C-L> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | "------------------------------------------------------------ | ||||||
							
								
								
									
										27
									
								
								users/vimrc.sls
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								users/vimrc.sls
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,27 @@ | |||||||
|  | {% from "users/map.jinja" import users with context %} | ||||||
|  | include: | ||||||
|  |   - users | ||||||
|  |   - vim | ||||||
|  | 
 | ||||||
|  | extend: | ||||||
|  | {% for name, user in pillar.get('users', {}).items() if user.absent is not defined or not user.absent %} | ||||||
|  | {%- if user == None -%} | ||||||
|  | {%- set user = {} -%} | ||||||
|  | {%- endif -%} | ||||||
|  | {%- set home = user.get('home', "/home/%s" % name) -%} | ||||||
|  | 
 | ||||||
|  | {%- if 'prime_group' in user and 'name' in user['prime_group'] %} | ||||||
|  | {%- set user_group = user.prime_group.name -%} | ||||||
|  | {%- else -%} | ||||||
|  | {%- set user_group = name -%} | ||||||
|  | {%- endif %} | ||||||
|  |   users_{{ name }}_user: | ||||||
|  |     file.managed: | ||||||
|  |       - name: {{ home }}/.vimrc | ||||||
|  |       - owner: {{ name }} | ||||||
|  |       - group: {{ user_group }} | ||||||
|  |       - mode: 644 | ||||||
|  |       - source:  | ||||||
|  |         - salt://users/files/vimrc/{{ name }}/vimrc | ||||||
|  |         - salt://users/files/vimrc/vimrc | ||||||
|  | {% endfor %} | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user