summaryrefslogtreecommitdiff
path: root/lua/tjk/misc.lua
blob: 14c5bd8525fec6ffe9ea549a022c4852e5e249fb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
-- Use tabs instead of spaces for certain filetypes
local tabs_instead_of_spaces_filetypes = {
	"sass",
	"scss",
}

local tabs_instead_of_spaces = function(args)
	local o = vim.opt_local
	o.expandtab = false
	--o.cinoptions = true
	o.preserveindent = true
	o.softtabstop = 0
	o.shiftwidth = 4
	o.tabstop = 4
end
vim.api.nvim_create_autocmd("FileType", { pattern = tabs_instead_of_spaces_filetypes, callback = tabs_instead_of_spaces })


vim.cmd [[
	"" Extra functionality

	"" Functions for changing the terminal emulator's class name to 'Vim'
	"function GetTermPID(temu)
	"	let pinfo = ['', getpid(), '']
	"	while !(pinfo[2] =~ a:temu || pinfo[1] == '0')
	"		let pinfo = split(system('ps h -o pid,ppid,command= -p' . pinfo[1]))
	"	endwhile
	"	return pinfo[0]
	"endfunction

	"function SetTermClassName(termpid, name)
	"	" Command chaining in xdotool doesn't work here for some reason
	"	silent exec "!xdotool set_window --class " . a:name . " $(xdotool search --pid " . a:termpid . ")"
	"endfunction

	"" Behaviors exclusive to either a tty or a graphical terminal emulator
	"if empty($DISPLAY)
	"	" Clear the tty screen after exiting vim
	"	autocmd VimLeave * :clear
	"else
	"	" Highlight current line
	"	set cursorline
	"	" Change window title
	"	autocmd BufEnter * :set title
	"	let &titleold="st"
	"	" Change class name
	"	let temu = "st"
	"	let temupid = GetTermPID(temu)
	"	if (temupid != 1)
	"		autocmd VimEnter * call SetTermClassName(temupid, "Vim")
	"		autocmd VimLeave * call SetTermClassName(temupid, temu)
	"	endif
	"endif

	" Automatically deletes all trailing whitespace on save
	function DelWS()
		let l:save_view = winsaveview()
		:%s/\s*$//e
		call winrestview(l:save_view)
	endfunction
	autocmd BufWritePre * call DelWS()


	" vim -b : edit binary using xxd-format!
	augroup Binary
		au!
		au BufReadPre  *.bin let &bin=1
		au BufReadPost *.bin if &bin | %!xxd
		au BufReadPost *.bin set ft=xxd | endif
		au BufWritePre *.bin if &bin | %!xxd -r
		au BufWritePre *.bin endif
		au BufWritePost *.bin if &bin | %!xxd
		au BufWritePost *.bin set nomod | endif
	augroup END
]]