commit
bcfda47358
@ -0,0 +1,6 @@
|
|||||||
|
# dotfiles
|
||||||
|
|
||||||
|
`git clone git@github.com:D4VIDB2/dotfiles.git ~/.dotfiles`
|
||||||
|
|
||||||
|
## using 'stow'
|
||||||
|
[DONT DO THAT WITH YOUR DOTFILES (DO THIS)](https://youtu.be/tkUllCAGs3c)
|
@ -0,0 +1,22 @@
|
|||||||
|
#
|
||||||
|
# ~/.bashrc
|
||||||
|
#
|
||||||
|
|
||||||
|
# If not running interactively, don't do anything
|
||||||
|
[[ $- != *i* ]] && return
|
||||||
|
|
||||||
|
PS1='\n\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\n\$ '
|
||||||
|
|
||||||
|
stty -ixon # Disable Ctrl-s and Ctrl-q
|
||||||
|
HISTSIZE=1000
|
||||||
|
|
||||||
|
if [ -f ~/.shell_aliases ]; then
|
||||||
|
source ~/.shell_aliases
|
||||||
|
fi
|
||||||
|
|
||||||
|
export PATH=$PATH:$HOME/.cargo/bin
|
||||||
|
export PATH=$PATH:$HOME/.pub-cache/bin
|
||||||
|
|
||||||
|
#source "$HOME/.cargo/env"
|
||||||
|
|
||||||
|
tmux
|
@ -0,0 +1,34 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# main packages
|
||||||
|
yay -Sy vim neovim tmux zsh plasma-wayland-session plasma-systemmonitor gparted gimp htop libreoffice-fresh wireshark-qt chromium stow exa thefuck xclip --needed
|
||||||
|
|
||||||
|
# extra packages
|
||||||
|
yay -Sy dotnet-runtime dotnet-sdk aspnet-runtime grub-customizer xournalpp rustup cargo lazygit --needed
|
||||||
|
|
||||||
|
# autorotation on tablet
|
||||||
|
yay -Sy iio-sensor-proxy --needed
|
||||||
|
|
||||||
|
# AUR packages
|
||||||
|
yay -Sy pazi spotify tty-clock tuxy-git members --needed
|
||||||
|
|
||||||
|
|
||||||
|
# oh my zsh
|
||||||
|
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" &&
|
||||||
|
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting &&
|
||||||
|
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
|
||||||
|
|
||||||
|
|
||||||
|
# LunarVim
|
||||||
|
yay -Sy python-pynvim
|
||||||
|
LV_BRANCH='release-1.3/neovim-0.9' bash <(curl -s https://raw.githubusercontent.com/LunarVim/LunarVim/release-1.3/neovim-0.9/utils/installer/install.sh)
|
||||||
|
|
||||||
|
|
||||||
|
# dotfiles
|
||||||
|
cd ~
|
||||||
|
git clone https://github.com:D4VIDB2/dotfiles.git .dotfiles
|
||||||
|
cd .dotfiles
|
||||||
|
rm ~/.bashrc; stow --no-filding bash
|
||||||
|
rm ~/.tmux.conf; stow --no-filding tmux
|
||||||
|
rm ~/.zshrc; stow --no-filding zsh
|
||||||
|
stow --no-filding lvim
|
@ -0,0 +1,25 @@
|
|||||||
|
-- Read the docs: https://www.lunarvim.org/docs/configuration
|
||||||
|
-- Video Tutorials: https://www.youtube.com/watch?v=sFA9kX-Ud_c&list=PLhoH5vyxr6QqGu0i7tt_XoVK9v-KvZ3m6
|
||||||
|
-- Forum: https://www.reddit.com/r/lunarvim/
|
||||||
|
-- Discord: https://discord.com/invite/Xb9B4Ny
|
||||||
|
|
||||||
|
vim.opt.shiftwidth = 4 -- the number of spaces inserted for each indentation
|
||||||
|
vim.opt.tabstop = 4 -- insert 4 spaces for a tab
|
||||||
|
vim.opt.softtabstop = 4 -- insert 4 spaces for a tab
|
||||||
|
vim.opt.relativenumber = true -- relative line numbers
|
||||||
|
vim.opt.wrap = true -- wrap lines
|
||||||
|
vim.opt.smartcase = true
|
||||||
|
vim.opt.mouse = ""
|
||||||
|
|
||||||
|
|
||||||
|
lvim.plugins = {
|
||||||
|
{ "octol/vim-cpp-enhanced-highlight" }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
-- add `svls` to `skipped_servers` list
|
||||||
|
vim.list_extend(lvim.lsp.automatic_configuration.skipped_servers, { "svls" })
|
||||||
|
-- remove `svlangserver` from `skipped_servers` list
|
||||||
|
lvim.lsp.automatic_configuration.skipped_servers = vim.tbl_filter(function(server)
|
||||||
|
return server ~= "svlangserver"
|
||||||
|
end, lvim.lsp.automatic_configuration.skipped_servers)
|
@ -0,0 +1,430 @@
|
|||||||
|
let mapleader=" "
|
||||||
|
set timeout timeoutlen=3000
|
||||||
|
|
||||||
|
set mouse=
|
||||||
|
syntax on
|
||||||
|
|
||||||
|
set nocompatible
|
||||||
|
set noerrorbells
|
||||||
|
set number
|
||||||
|
set relativenumber
|
||||||
|
set incsearch
|
||||||
|
set ignorecase
|
||||||
|
set smartcase
|
||||||
|
set ruler
|
||||||
|
set splitright
|
||||||
|
set splitbelow
|
||||||
|
set tabstop=4 softtabstop=4
|
||||||
|
set shiftwidth=4
|
||||||
|
set expandtab
|
||||||
|
set smartindent
|
||||||
|
set noswapfile
|
||||||
|
set nobackup
|
||||||
|
set undodir=~/.vim/undodir
|
||||||
|
set undofile
|
||||||
|
set nohlsearch
|
||||||
|
set cursorline
|
||||||
|
set inccommand=nosplit " highlight substitude
|
||||||
|
set scrolloff=4
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
" PLUGINS:
|
||||||
|
call plug#begin('~/.config/nvim/autoload/plugged')
|
||||||
|
|
||||||
|
Plug 'scrooloose/nerdcommenter'
|
||||||
|
Plug 'preservim/nerdtree'
|
||||||
|
Plug 'zhimsel/vim-stay' " Stay at my cursor
|
||||||
|
|
||||||
|
" Colorthemes
|
||||||
|
Plug 'morhetz/gruvbox'
|
||||||
|
Plug 'navarasu/onedark.nvim'
|
||||||
|
|
||||||
|
" Fuzzy file search
|
||||||
|
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } " fuzzy file finder
|
||||||
|
Plug 'junegunn/fzf.vim'
|
||||||
|
Plug 'chengzeyi/fzf-preview.vim' " fzf preview for more things
|
||||||
|
Plug 'airblade/vim-rooter'
|
||||||
|
|
||||||
|
" Show git modifications to file
|
||||||
|
"Plug 'vim-scripts/vim-gitgutter'
|
||||||
|
|
||||||
|
Plug 'duane9/nvim-rg'
|
||||||
|
|
||||||
|
Plug 'sbdchd/vim-run' " run current file
|
||||||
|
|
||||||
|
Plug 'octol/vim-cpp-enhanced-highlight'
|
||||||
|
Plug 'nicwest/vim-http' " Simple wrapper over curl and http syntax highlighting.
|
||||||
|
Plug 'tpope/vim-markdown' " Markdown syntax highlighting
|
||||||
|
|
||||||
|
" LSP:
|
||||||
|
" Collection of common configurations for the Nvim LSP client
|
||||||
|
Plug 'neovim/nvim-lspconfig'
|
||||||
|
" Optional
|
||||||
|
Plug 'williamboman/nvim-lsp-installer' " Automaticlly install language server
|
||||||
|
Plug 'nvim-lua/popup.nvim'
|
||||||
|
Plug 'nvim-lua/plenary.nvim'
|
||||||
|
Plug 'nvim-treesitter/nvim-treesitter'
|
||||||
|
Plug 'nvim-telescope/telescope.nvim'
|
||||||
|
|
||||||
|
Plug 'hrsh7th/nvim-cmp' " Autocompletion framework
|
||||||
|
Plug 'hrsh7th/cmp-nvim-lsp' " cmp LSP completion
|
||||||
|
Plug 'hrsh7th/cmp-path' " cmp Path completion
|
||||||
|
Plug 'hrsh7th/cmp-buffer'
|
||||||
|
Plug 'saadparwaiz1/cmp_luasnip' " Snippets
|
||||||
|
Plug 'L3MON4D3/LuaSnip'
|
||||||
|
|
||||||
|
Plug 'stevearc/aerial.nvim' " Code outline window
|
||||||
|
|
||||||
|
|
||||||
|
" Adds extra functionality over rust analyzer
|
||||||
|
Plug 'simrat39/rust-tools.nvim'
|
||||||
|
|
||||||
|
" Better python sytax highlighting
|
||||||
|
Plug 'numirias/semshi', { 'do': ':UpdateRemotePlugins' }
|
||||||
|
|
||||||
|
" LaTeX support
|
||||||
|
" Plug 'vim-latex/vim-latex'
|
||||||
|
|
||||||
|
call plug#end()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
" COLORSCHEME:
|
||||||
|
colorscheme gruvbox
|
||||||
|
set background=dark
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
" PLUGIN CONFIGURATION:
|
||||||
|
" run current file plugin
|
||||||
|
let g:run_cmd_python = ['python3']
|
||||||
|
let g:run_split = 'right'
|
||||||
|
|
||||||
|
" HTTP
|
||||||
|
let g:vim_http_split_vertically = 1
|
||||||
|
|
||||||
|
" Markdown
|
||||||
|
let g:markdown_fenced_languages = ['html', 'python', 'bash=sh', 'xml', 'javascript', 'json', 'asm', 'cs', 'c', 'cpp']
|
||||||
|
let g:markdown_minlines = 100
|
||||||
|
|
||||||
|
" Vim rooter
|
||||||
|
"let g:rooter_manual_only = 1
|
||||||
|
let g:rooter_patterns = ['_darcs', '.hg', '.bzr', '.svn', '*.csproj', '*.sln', 'Makefile', 'package.json', '.git']
|
||||||
|
|
||||||
|
let g:python_host_prog = '/usr/bin/python2'
|
||||||
|
let g:python3_host_prog = '/usr/bin/python3'
|
||||||
|
|
||||||
|
|
||||||
|
" LSP:
|
||||||
|
" Set completeopt to have a better completion experience
|
||||||
|
" :help completeopt
|
||||||
|
" menuone: popup even when there's only one match
|
||||||
|
" noinsert: Do not insert text until a selection is made
|
||||||
|
" noselect: Do not select, force user to select one from the menu
|
||||||
|
set completeopt=menuone,noinsert,noselect,preview
|
||||||
|
|
||||||
|
" Avoid showing extra messages when using completion
|
||||||
|
"set shortmess+=c
|
||||||
|
|
||||||
|
lua <<EOF
|
||||||
|
-- Mappings.
|
||||||
|
-- See `:help vim.diagnostic.*` for documentation on any of the below functions
|
||||||
|
local opts = { noremap=true, silent=true }
|
||||||
|
vim.api.nvim_set_keymap('n', '<space>e', '<cmd>lua vim.diagnostic.open_float()<CR>', opts)
|
||||||
|
vim.api.nvim_set_keymap('n', '[d', '<cmd>lua vim.diagnostic.goto_prev()<CR>', opts)
|
||||||
|
vim.api.nvim_set_keymap('n', ']d', '<cmd>lua vim.diagnostic.goto_next()<CR>', opts)
|
||||||
|
vim.api.nvim_set_keymap('n', '<space>q', '<cmd>lua vim.diagnostic.setloclist()<CR>', opts)
|
||||||
|
|
||||||
|
-- Use an on_attach function to only map the following keys
|
||||||
|
-- after the language server attaches to the current buffer
|
||||||
|
local on_attach = function(client, bufnr)
|
||||||
|
local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end
|
||||||
|
local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end
|
||||||
|
|
||||||
|
-- Enable completion triggered by <c-x><c-o>
|
||||||
|
buf_set_option('omnifunc', 'v<cmd>lua.vim.lsp.omnifunc')
|
||||||
|
|
||||||
|
-- Mappings.
|
||||||
|
-- See `:help vim.lsp.*` for documentation on any of the below functions
|
||||||
|
buf_set_keymap('n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>', opts)
|
||||||
|
buf_set_keymap('n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>', opts)
|
||||||
|
buf_set_keymap('n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>', opts)
|
||||||
|
buf_set_keymap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts)
|
||||||
|
buf_set_keymap('n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
|
||||||
|
--buf_set_keymap('n', '<space>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', opts)
|
||||||
|
--buf_set_keymap('n', '<space>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', opts)
|
||||||
|
--buf_set_keymap('n', '<space>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', opts)
|
||||||
|
buf_set_keymap('n', '<space>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts)
|
||||||
|
buf_set_keymap('n', '<space>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
|
||||||
|
buf_set_keymap('n', '<space>ca', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts)
|
||||||
|
buf_set_keymap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts)
|
||||||
|
buf_set_keymap('n', '<space>=', '<cmd>lua vim.lsp.buf.format { async = true }<CR>', opts)
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
require("nvim-lsp-installer").setup {
|
||||||
|
automatic_installation = true
|
||||||
|
}
|
||||||
|
|
||||||
|
local executors = require "rust-tools.executors"
|
||||||
|
require("rust-tools").setup {
|
||||||
|
-- dap = {
|
||||||
|
-- adapter = require('rust-tools.dap').get_codelldb_adapter(
|
||||||
|
-- codelldb_path, liblldb_path)
|
||||||
|
-- },
|
||||||
|
-- tools = {
|
||||||
|
-- executor = executors.toggleterm,
|
||||||
|
-- runnables = {
|
||||||
|
-- use_telescope = true,
|
||||||
|
-- },
|
||||||
|
-- autoSetHints = true,
|
||||||
|
-- inlay_hints = { show_parameter_hints = true },
|
||||||
|
-- hover_actions = { auto_focus = true }
|
||||||
|
-- },
|
||||||
|
server = {
|
||||||
|
-- cmd = { "~/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/rust-analyzer" },
|
||||||
|
-- on_attach = function(client, bufnr)
|
||||||
|
-- require("lvim.lsp").common_on_attach(client, bufnr)
|
||||||
|
-- local rt = require "rust-tools"
|
||||||
|
-- vim.keymap.set("n", "<leader>lA", rt.code_action_group.code_action_group, { buffer = bufnr })
|
||||||
|
-- end,
|
||||||
|
-- on_init = require("lvim.lsp").common_on_init,
|
||||||
|
settings = {
|
||||||
|
["rust-analyzer"] = {
|
||||||
|
rustfmt = {
|
||||||
|
extraArgs = { "+nightly", },
|
||||||
|
},
|
||||||
|
-- diagnostics = {
|
||||||
|
-- disabled = { "unresolved-proc-macro" },
|
||||||
|
lens = {
|
||||||
|
enable = true,
|
||||||
|
},
|
||||||
|
checkOnSave = {
|
||||||
|
command = "clippy",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Add additional capabilities supported by nvim-cmp
|
||||||
|
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||||
|
capabilities = require('cmp_nvim_lsp').default_capabilities(capabilities)
|
||||||
|
|
||||||
|
-- Setup language servers
|
||||||
|
local nvim_lsp = require('lspconfig')
|
||||||
|
local servers = { 'clangd', 'rust_analyzer', 'pyright', 'omnisharp', 'html', 'cssls', 'texlab', 'gopls', 'tsserver'}
|
||||||
|
for _, server in ipairs(servers) do
|
||||||
|
local config = {
|
||||||
|
on_attach = on_attach,
|
||||||
|
capabilities = capabilities,
|
||||||
|
}
|
||||||
|
|
||||||
|
if server == "omnisharp" then
|
||||||
|
local pid = vim.fn.getpid()
|
||||||
|
local omnisharp_bin = '~/.local/share/nvim/lsp_servers/omnisharp/omnisharp/OmniSharp'
|
||||||
|
config.cmd = { omnisharp_bin, "--languageserver" , "--hostPID", tostring(pid) }
|
||||||
|
end
|
||||||
|
|
||||||
|
nvim_lsp[server].setup(config)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- luasnip setup
|
||||||
|
local luasnip = require 'luasnip'
|
||||||
|
|
||||||
|
-- Setup Completion
|
||||||
|
-- See https://github.com/hrsh7th/nvim-cmp#basic-configuration
|
||||||
|
local cmp = require'cmp'
|
||||||
|
cmp.setup({
|
||||||
|
snippet = {
|
||||||
|
expand = function(args)
|
||||||
|
luasnip.lsp_expand(args.body)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
mapping = {
|
||||||
|
['<C-n>'] = cmp.mapping.select_next_item(),
|
||||||
|
['<C-p>'] = cmp.mapping.select_prev_item(),
|
||||||
|
-- Add tab support
|
||||||
|
['<Tab>'] = cmp.mapping(function(fallback)
|
||||||
|
if cmp.visible() then
|
||||||
|
cmp.select_next_item()
|
||||||
|
elseif luasnip.expand_or_jumpable() then
|
||||||
|
luasnip.expand_or_jump()
|
||||||
|
else
|
||||||
|
fallback()
|
||||||
|
end
|
||||||
|
end, { 'i', 's' }),
|
||||||
|
['<S-Tab>'] = cmp.mapping(function(fallback)
|
||||||
|
if cmp.visible() then
|
||||||
|
cmp.select_prev_item()
|
||||||
|
elseif luasnip.jumpable(-1) then
|
||||||
|
luasnip.jump(-1)
|
||||||
|
else
|
||||||
|
fallback()
|
||||||
|
end
|
||||||
|
end, { 'i', 's' }),
|
||||||
|
['<C-u>'] = cmp.mapping.scroll_docs(-4),
|
||||||
|
['<C-d>'] = cmp.mapping.scroll_docs(4),
|
||||||
|
['<C-Space>'] = cmp.mapping.complete(),
|
||||||
|
['<C-e>'] = cmp.mapping.close(),
|
||||||
|
['<CR>'] = cmp.mapping.confirm({
|
||||||
|
behavior = cmp.ConfirmBehavior.Replace,
|
||||||
|
select = true,
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Installed sources
|
||||||
|
sources = {
|
||||||
|
{ name = 'nvim_lsp' },
|
||||||
|
{ name = 'luasnip' },
|
||||||
|
{ name = 'path' },
|
||||||
|
{ name = 'buffer' },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
require('aerial').setup({
|
||||||
|
-- optionally use on_attach to set keymaps when aerial has attached to a buffer
|
||||||
|
on_attach = function(bufnr)
|
||||||
|
-- Jump forwards/backwards with '{' and '}'
|
||||||
|
vim.keymap.set('n', '[m', '<cmd>AerialPrev<CR>', {buffer = bufnr})
|
||||||
|
vim.keymap.set('n', ']m', '<cmd>AerialNext<CR>', {buffer = bufnr})
|
||||||
|
end
|
||||||
|
})
|
||||||
|
-- You probably also want to set a keymap to toggle aerial
|
||||||
|
vim.keymap.set('n', '<leader>a', '<cmd>AerialToggle!<CR>')
|
||||||
|
EOF
|
||||||
|
|
||||||
|
" have a fixed column for the diagnostics to appear in
|
||||||
|
" this removes the jitter when warnings/errors flow in
|
||||||
|
set signcolumn=yes
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
" Shebang line:
|
||||||
|
function! Hashbang(portable, permission, RemExt)
|
||||||
|
let shells = {
|
||||||
|
\ 'awk': "awk",
|
||||||
|
\ 'sh': "bash",
|
||||||
|
\ 'hs': "runhaskell",
|
||||||
|
\ 'jl': "julia",
|
||||||
|
\ 'lua': "lua",
|
||||||
|
\ 'mak': "make",
|
||||||
|
\ 'js': "node",
|
||||||
|
\ 'm': "octave",
|
||||||
|
\ 'pl': "perl",
|
||||||
|
\ 'php': "php",
|
||||||
|
\ 'py': "python3",
|
||||||
|
\ 'r': "Rscript",
|
||||||
|
\ 'rb': "ruby",
|
||||||
|
\ 'scala': "scala",
|
||||||
|
\ 'tcl': "tclsh",
|
||||||
|
\ 'tk': "wish"
|
||||||
|
\ }
|
||||||
|
|
||||||
|
let extension = expand("%:e")
|
||||||
|
if has_key(shells,extension)
|
||||||
|
let fileshell = shells[extension]
|
||||||
|
|
||||||
|
if a:portable
|
||||||
|
let line = "#!/usr/bin/env " . fileshell
|
||||||
|
else
|
||||||
|
let line = "#!" . system("which " . fileshell)
|
||||||
|
endif
|
||||||
|
|
||||||
|
0put = line
|
||||||
|
|
||||||
|
if a:permission
|
||||||
|
:autocmd BufWritePost * :autocmd VimLeave * :!chmod u+x %
|
||||||
|
endif
|
||||||
|
if a:RemExt
|
||||||
|
:autocmd BufWritePost * :autocmd VimLeave * :!mv % "%:p:r"
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
" Automaticly trim all trailing whitespace on save(write)
|
||||||
|
function! <SID>StripTrailingWhitespaces()
|
||||||
|
let l = line(".")
|
||||||
|
let c = col(".")
|
||||||
|
%s/\s\+$//e
|
||||||
|
call cursor(l, c)
|
||||||
|
endfun
|
||||||
|
autocmd BufWritePre * :call <SID>StripTrailingWhitespaces()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
" AUTOCMD:
|
||||||
|
|
||||||
|
autocmd BufNewFile,BufRead *.pde set syntax=java
|
||||||
|
autocmd BufNewFile,BufRead *.pde set filetype=java
|
||||||
|
autocmd BufNewFile,BufRead *.ino set syntax=arduino
|
||||||
|
autocmd BufNewFile,BufRead *.ino set filetype=arduino
|
||||||
|
|
||||||
|
autocmd BufNewFile *.* :call Hashbang(1,1,0)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
" REMAPPING:
|
||||||
|
|
||||||
|
nnoremap <leader>rr :Run <CR>
|
||||||
|
|
||||||
|
" disable spacebar (don't move forward)
|
||||||
|
nnoremap <SPACE> <Nop>
|
||||||
|
|
||||||
|
" quickly move through panes
|
||||||
|
nnoremap <C-J> <C-W><C-J>
|
||||||
|
nnoremap <C-K> <C-W><C-K>
|
||||||
|
nnoremap <C-L> <C-W><C-L>
|
||||||
|
nnoremap <C-H> <C-W><C-H>
|
||||||
|
|
||||||
|
" resize panes
|
||||||
|
nnoremap <silent> <leader>+ :vertical resize +5<CR>
|
||||||
|
nnoremap <silent> <leader>- :vertical resize -5<CR>
|
||||||
|
nnoremap <silent> <leader>* :resize +5<CR>
|
||||||
|
nnoremap <silent> <leader>/ :resize -5<CR>
|
||||||
|
|
||||||
|
nnoremap <silent> <leader>fg :GFiles<CR>
|
||||||
|
nnoremap <silent> <leader>ff :Files<CR>
|
||||||
|
|
||||||
|
vnoremap <leader>p "_dP
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
" MUST HAVE VIM REMAPS:
|
||||||
|
|
||||||
|
" Number 5: Behave Vim
|
||||||
|
nnoremap Y y$
|
||||||
|
|
||||||
|
" Number 4: Keeping it centered
|
||||||
|
nnoremap n nzzzv
|
||||||
|
nnoremap N Nzzzv
|
||||||
|
|
||||||
|
" Number 3: Undo break points
|
||||||
|
inoremap . .<c-g>u
|
||||||
|
inoremap , ,<c-g>u
|
||||||
|
inoremap ! !<c-g>u
|
||||||
|
inoremap ? ?<c-g>u
|
||||||
|
inoremap _ _<c-g>u
|
||||||
|
inoremap - -<c-g>u
|
||||||
|
inoremap <space> <space><c-g>u
|
||||||
|
|
||||||
|
" Number 2: Jumplist mutations
|
||||||
|
nnoremap <expr> k (v:count > 5 ? "m'" . v:count : "") . 'k'
|
||||||
|
nnoremap <expr> j (v:count > 5 ? "m'" . v:count : "") . 'j'
|
||||||
|
|
||||||
|
" Number 1: Moving text
|
||||||
|
vnoremap J :m '>+1<CR>gv=gv
|
||||||
|
vnoremap K :m '<-2<CR>gv=gv
|
||||||
|
nnoremap <leader>j :m .+1<CR>==
|
||||||
|
nnoremap <leader>k :m .-2<CR>==
|
||||||
|
vnoremap < <gv
|
||||||
|
vnoremap > >gv
|
||||||
|
|
@ -0,0 +1,46 @@
|
|||||||
|
# Send prefix
|
||||||
|
set-option -g prefix C-a
|
||||||
|
unbind-key C-a
|
||||||
|
bind-key C-a send-prefix
|
||||||
|
|
||||||
|
# Use Alt-arrow keys to switch panes
|
||||||
|
bind -n M-h select-pane -L
|
||||||
|
bind -n M-l select-pane -R
|
||||||
|
bind -n M-k select-pane -U
|
||||||
|
bind -n M-j select-pane -D
|
||||||
|
|
||||||
|
# prefix + j/k to switch windows
|
||||||
|
bind-key j previous-window
|
||||||
|
bind-key k next-window
|
||||||
|
|
||||||
|
# Mouse mode
|
||||||
|
setw -g mouse off
|
||||||
|
|
||||||
|
# set vim-like keybidings in buffer mode
|
||||||
|
setw -g mode-keys vi
|
||||||
|
|
||||||
|
# fix escape key delay in vim
|
||||||
|
set -s escape-time 0
|
||||||
|
|
||||||
|
set -g history-limit 20000
|
||||||
|
set -g default-terminal screen-256color
|
||||||
|
set-option -g default-shell /usr/bin/zsh
|
||||||
|
set-option -g focus-events on
|
||||||
|
|
||||||
|
set-option -sa terminal-overrides ',xterm-256color:RGB'
|
||||||
|
|
||||||
|
# Set easier window split keys
|
||||||
|
bind-key h split-window -v -c "#{pane_current_path}"
|
||||||
|
bind-key v split-window -h -c "#{pane_current_path}"
|
||||||
|
|
||||||
|
bind-key c new-window -c "#{pane_current_path}"
|
||||||
|
|
||||||
|
# Easy config reload
|
||||||
|
bind-key r source-file ~/.tmux.conf \; display-message "~/.tmux.conf reloaded."
|
||||||
|
|
||||||
|
# yank to clipboard
|
||||||
|
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xclip -in -selection clipboard'
|
||||||
|
|
||||||
|
# Start window and pane indexes from 1 and not 0
|
||||||
|
set -g base-index 1
|
||||||
|
setw -g pane-base-index 1
|
@ -0,0 +1,42 @@
|
|||||||
|
# color
|
||||||
|
alias ls='ls --color=auto --group-directories-first'
|
||||||
|
alias grep='grep --color=auto'
|
||||||
|
alias ip='ip -color=auto'
|
||||||
|
|
||||||
|
#alias la='ls -lahF'
|
||||||
|
alias xclip='xclip -selection clipboard'
|
||||||
|
alias xpaste='xclip -o -selection clipboard'
|
||||||
|
alias more='less'
|
||||||
|
alias ..='cd ..'
|
||||||
|
alias cp='cp -iv'
|
||||||
|
alias mv='mv -iv'
|
||||||
|
alias rm='rm -v'
|
||||||
|
alias free='free -m'
|
||||||
|
|
||||||
|
#alias ccat="highlight --out-format=ansi"
|
||||||
|
alias p="nocorrect sudo pacman"
|
||||||
|
alias sc="sudo systemctl"
|
||||||
|
alias psg="nocorrect ps aux | grep"
|
||||||
|
#alias suod='sudo'
|
||||||
|
|
||||||
|
# git
|
||||||
|
alias g='git'
|
||||||
|
alias gst='git status'
|
||||||
|
alias gdiff='git diff'
|
||||||
|
alias gl='git pull'
|
||||||
|
alias gp='git push'
|
||||||
|
alias gc='git commit -v'
|
||||||
|
alias gca='git commit -v -a'
|
||||||
|
alias gcm='git commit -m'
|
||||||
|
alias gcam='git commit -a -m'
|
||||||
|
alias gco='git checkout'
|
||||||
|
alias gb='git branch'
|
||||||
|
alias ga='git add'
|
||||||
|
|
||||||
|
|
||||||
|
alias batman="MANPAGER=\"sh -c 'col -bx | bat -l man -p'\" man"
|
||||||
|
alias la='exa -laag --group-directories-first'
|
||||||
|
|
||||||
|
alias nvimconf='nvim ~/.config/nvim/init.vim'
|
||||||
|
alias udb='sudo updatedb'
|
||||||
|
alias wettr='curl https://wttr.in/Prague'
|
@ -0,0 +1,185 @@
|
|||||||
|
# If you come from bash you might have to change your $PATH.
|
||||||
|
# export PATH=$HOME/bin:/usr/local/bin:$PATH
|
||||||
|
|
||||||
|
# Path to your oh-my-zsh installation.
|
||||||
|
export ZSH="/home/david/.oh-my-zsh"
|
||||||
|
|
||||||
|
# Set name of the theme to load --- if set to "random", it will
|
||||||
|
# load a random theme each time oh-my-zsh is loaded, in which case,
|
||||||
|
# to know which specific one was loaded, run: echo $RANDOM_THEME
|
||||||
|
# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
|
||||||
|
ZSH_THEME="intheloop"
|
||||||
|
#gentoo - jako bash
|
||||||
|
#essembeh - jako bash
|
||||||
|
#dpoggi - jako bash, ale barevnejsi
|
||||||
|
#kennethreitz - pwd na prave strane
|
||||||
|
#bira - $ na nove radce pod pwd
|
||||||
|
#rkj - old tech style
|
||||||
|
#intheloop - $ na nove radce, mezera mezi prikazy
|
||||||
|
|
||||||
|
# Set list of themes to pick from when loading at random
|
||||||
|
# Setting this variable when ZSH_THEME=random will cause zsh to load
|
||||||
|
# a theme from this variable instead of looking in $ZSH/themes/
|
||||||
|
# If set to an empty array, this variable will have no effect.
|
||||||
|
# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )
|
||||||
|
|
||||||
|
# Uncomment the following line to use case-sensitive completion.
|
||||||
|
# CASE_SENSITIVE="true"
|
||||||
|
|
||||||
|
# Uncomment the following line to use hyphen-insensitive completion.
|
||||||
|
# Case-sensitive completion must be off. _ and - will be interchangeable.
|
||||||
|
# HYPHEN_INSENSITIVE="true"
|
||||||
|
|
||||||
|
# Uncomment the following line to disable bi-weekly auto-update checks.
|
||||||
|
DISABLE_AUTO_UPDATE="true"
|
||||||
|
|
||||||
|
# Uncomment the following line to automatically update without prompting.
|
||||||
|
# DISABLE_UPDATE_PROMPT="true"
|
||||||
|
|
||||||
|
# Uncomment the following line to change how often to auto-update (in days).
|
||||||
|
export UPDATE_ZSH_DAYS=21
|
||||||
|
|
||||||
|
# Uncomment the following line if pasting URLs and other text is messed up.
|
||||||
|
# DISABLE_MAGIC_FUNCTIONS=true
|
||||||
|
|
||||||
|
# Uncomment the following line to disable colors in ls.
|
||||||
|
# DISABLE_LS_COLORS="true"
|
||||||
|
|
||||||
|
# Uncomment the following line to disable auto-setting terminal title.
|
||||||
|
# DISABLE_AUTO_TITLE="true"
|
||||||
|
|
||||||
|
# Uncomment the following line to enable command auto-correction.
|
||||||
|
ENABLE_CORRECTION="true"
|
||||||
|
|
||||||
|
# Uncomment the following line to display red dots whilst waiting for completion.
|
||||||
|
# COMPLETION_WAITING_DOTS="true"
|
||||||
|
|
||||||
|
# Uncomment the following line if you want to disable marking untracked files
|
||||||
|
# under VCS as dirty. This makes repository status check for large repositories
|
||||||
|
# much, much faster.
|
||||||
|
# DISABLE_UNTRACKED_FILES_DIRTY="true"
|
||||||
|
|
||||||
|
# Uncomment the following line if you want to change the command execution time
|
||||||
|
# stamp shown in the history command output.
|
||||||
|
# You can set one of the optional three formats:
|
||||||
|
# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
|
||||||
|
# or set a custom format using the strftime function format specifications,
|
||||||
|
# see 'man strftime' for details.
|
||||||
|
# HIST_STAMPS="mm/dd/yyyy"
|
||||||
|
|
||||||
|
# Would you like to use another custom folder than $ZSH/custom?
|
||||||
|
# ZSH_CUSTOM=/path/to/new-custom-folder
|
||||||
|
|
||||||
|
# Which plugins would you like to load?
|
||||||
|
# Standard plugins can be found in $ZSH/plugins/
|
||||||
|
# Custom plugins may be added to $ZSH_CUSTOM/plugins/
|
||||||
|
# Example format: plugins=(rails git textmate ruby lighthouse)
|
||||||
|
# Add wisely, as too many plugins slow down shell startup.
|
||||||
|
plugins=(git zsh-autosuggestions zsh-syntax-highlighting fzf-zsh-plugin)
|
||||||
|
|
||||||
|
source $ZSH/oh-my-zsh.sh
|
||||||
|
|
||||||
|
# User configuration
|
||||||
|
|
||||||
|
#ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#666666,underline"
|
||||||
|
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=8"
|
||||||
|
|
||||||
|
# export MANPATH="/usr/local/man:$MANPATH"
|
||||||
|
|
||||||
|
# You may need to manually set your language environment
|
||||||
|
# export LANG=en_US.UTF-8
|
||||||
|
|
||||||
|
# Preferred editor for local and remote sessions
|
||||||
|
# if [[ -n $SSH_CONNECTION ]]; then
|
||||||
|
# export EDITOR='vim'
|
||||||
|
# else
|
||||||
|
# export EDITOR='mvim'
|
||||||
|
# fi
|
||||||
|
|
||||||
|
# Compilation flags
|
||||||
|
# export ARCHFLAGS="-arch x86_64"
|
||||||
|
|
||||||
|
# Set personal aliases, overriding those provided by oh-my-zsh libs,
|
||||||
|
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
|
||||||
|
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
|
||||||
|
# For a full list of active aliases, run `alias`.
|
||||||
|
#
|
||||||
|
# Example aliases
|
||||||
|
# alias zshconfig="mate ~/.zshrc"
|
||||||
|
# alias ohmyzsh="mate ~/.oh-my-zsh"
|
||||||
|
#
|
||||||
|
|
||||||
|
bindkey '^ ' autosuggest-accept # accept suggestion with ctrl-space
|
||||||
|
|
||||||
|
export EDITOR='nvim'
|
||||||
|
export TERM=screen-256color
|
||||||
|
export PATH=$PATH:/home/david/.local/bin:/home/david/.dotnet/tools
|
||||||
|
|
||||||
|
if [ -f ~/.config/shell_aliases ]; then
|
||||||
|
source ~/.config/shell_aliases
|
||||||
|
fi
|
||||||
|
|
||||||
|
setopt GLOBdots
|
||||||
|
|
||||||
|
eval $(thefuck --alias)
|
||||||
|
|
||||||
|
if command -v pazi &>/dev/null; then
|
||||||
|
eval "$(pazi init zsh)" # or 'bash'
|
||||||
|
fi
|
||||||
|
alias zf='z --pipe="fzf"'
|
||||||
|
|
||||||
|
# Command time
|
||||||
|
function preexec() {
|
||||||
|
timer=$(($(date +%s%0N)/1000000))
|
||||||
|
}
|
||||||
|
|
||||||
|
function precmd() {
|
||||||
|
if [ $timer ]; then
|
||||||
|
now=$(($(date +%s%0N)/1000000))
|
||||||
|
elapsed=$(($now-$timer))
|
||||||
|
|
||||||
|
ms=$(($elapsed % 1000))
|
||||||
|
sec=$(($elapsed/1000 % 60))
|
||||||
|
min=$(($elapsed/60000 % 60))
|
||||||
|
hour=$(($elapsed/3600000))
|
||||||
|
|
||||||
|
if [ "$elapsed" -le 1000 ]; then
|
||||||
|
export RPROMPT="%F{cyan} $(printf "%d ms" $ms) %{$reset_color%}"
|
||||||
|
elif [ "$elapsed" -gt 1000 ] && [ "$elapsed" -le 60000 ]; then
|
||||||
|
export RPROMPT="%F{cyan} $(printf "%d.%03d s" $sec $ms) %{$reset_color%}"
|
||||||
|
elif [ "$elapsed" -gt 60000 ] && [ "$elapsed" -le 3600000 ]; then
|
||||||
|
export RPROMPT="%F{yellow} $(printf "%d min. %d s" $min $sec) %{$reset_color%}"
|
||||||
|
else
|
||||||
|
export RPROMPT="%F{red} $(printf "%d hours %d min. %d s" $hour $min $sec) %{$reset_color%}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
unset timer
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# # ex - archive extractor
|
||||||
|
# # usage: ex <file>
|
||||||
|
ex ()
|
||||||
|
{
|
||||||
|
if [ -f $1 ] ; then
|
||||||
|
case $1 in
|
||||||
|
*.tar.bz2) tar xjvf $1 ;;
|
||||||
|
*.tar.gz) tar xzvf $1 ;;
|
||||||
|
*.bz2) bunzip2 $1 ;;
|
||||||
|
*.rar) unrar x $1 ;;
|
||||||
|
*.gz) gunzip $1 ;;
|
||||||
|
*.tar) tar xvf $1 ;;
|
||||||
|
*.tbz2) tar xjvf $1 ;;
|
||||||
|
*.tgz) tar xzvf $1 ;;
|
||||||
|
*.zip) unzip $1 ;;
|
||||||
|
*.Z) uncompress $1;;
|
||||||
|
*.7z) 7z x $1 ;;
|
||||||
|
*) echo "'$1' cannot be extracted via ex()" ;;
|
||||||
|
esac
|
||||||
|
else
|
||||||
|
echo "'$1' is not a valid file"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in new issue