Initial commit

This commit is contained in:
Edgaru089 2025-06-05 13:35:52 +08:00
commit 9a8e04f76c
5 changed files with 607 additions and 0 deletions

66
_clang-format Normal file
View File

@ -0,0 +1,66 @@
---
AccessModifierOffset: '-4'
AlignAfterOpenBracket: AlwaysBreak
AlignConsecutiveMacros: 'true'
AlignConsecutiveAssignments: 'true'
AlignConsecutiveDeclarations: 'true'
AlignEscapedNewlines: Left
AlignOperands: 'true'
AlignTrailingComments: 'true'
AllowAllArgumentsOnNextLine: 'true'
AllowAllConstructorInitializersOnNextLine: 'true'
AllowAllParametersOfDeclarationOnNextLine: 'true'
AllowShortBlocksOnASingleLine: 'true'
AllowShortCaseLabelsOnASingleLine: 'true'
AllowShortFunctionsOnASingleLine: 'true'
AllowShortIfStatementsOnASingleLine: Never
AllowShortLambdasOnASingleLine: All
AllowShortLoopsOnASingleLine: 'true'
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: 'false'
AlwaysBreakTemplateDeclarations: 'Yes'
BreakBeforeBinaryOperators: None
BreakBeforeBraces: Attach
BreakBeforeTernaryOperators: 'false'
BreakStringLiterals: 'true'
ColumnLimit: '0'
CompactNamespaces: 'false'
ConstructorInitializerAllOnOneLineOrOnePerLine: 'true'
FixNamespaceComments: 'true'
IncludeBlocks: Preserve
IndentCaseLabels: 'true'
IndentGotoLabels: 'false'
IndentPPDirectives: None
IndentWidth: '4'
IndentWrappedFunctionNames: 'true'
KeepEmptyLinesAtTheStartOfBlocks: 'false'
Language: Cpp
MaxEmptyLinesToKeep: '2'
NamespaceIndentation: None
PenaltyReturnTypeOnItsOwnLine: '1000'
PointerAlignment: Right
ReflowComments: 'true'
SortIncludes: 'false'
SortUsingDeclarations: 'false'
SpaceAfterCStyleCast: 'false'
SpaceAfterLogicalNot: 'false'
SpaceAfterTemplateKeyword: 'false'
SpaceBeforeAssignmentOperators: 'true'
SpaceBeforeCpp11BracedList: 'false'
SpaceBeforeCtorInitializerColon: 'false'
SpaceBeforeInheritanceColon: 'false'
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: 'false'
SpaceInEmptyParentheses: 'false'
SpacesBeforeTrailingComments: '1'
SpacesInAngles: 'false'
SpacesInCStyleCastParentheses: 'false'
SpacesInContainerLiterals: 'false'
SpacesInParentheses: 'false'
SpacesInSquareBrackets: 'false'
Standard: Cpp11
TabWidth: '4'
UseTab: ForContinuationAndIndentation
ForEachMacros: [FOR, ROF, FCNT]
...

35
coc-settings.json Normal file
View File

@ -0,0 +1,35 @@
{
"coc.preferences.jumpCommand": "drop",
"list.normalMappings": {
"e": "action:drop"
},
"go.goplsPath": "/home/edgar/.local/share/gopath/bin/gopls",
"go.goplsUseDaemon": true,
"go.goplsOptions": {
"semanticTokens": true
},
"clangd.disableSnippetCompletion": false,
"rust-analyzer.server.path": "/usr/bin/rust-analyzer",
"rust-analyzer.diagnostics.warningsAsInfo": ["unused_imports"],
"semanticTokens.enable":true,
"java.configuration.runtimes": [
{
"name": "JavaSE-17",
"path": "/usr/lib/jvm/java-17-openjdk/",
"default": true
}
],
"texlab.chktex.onEdit": false,
"texlab.chktex.onOpenAndSave": false,
"texlab.latexFormatter": "none",
"typescript.format.enable": false,
"languageserver": {
"Dotnet": {
"command": "csharp-ls",
"filetypes": ["cs"],
"args": [],
"progressOnInitialization": true,
"revealOutputChannelOn": "warn"
}
}
}

8
myrr.zsh-theme Normal file
View File

@ -0,0 +1,8 @@
local ret_status="%(?:%{$reset_color%}:%{$fg_bold[red]%})"
PROMPT='%{$fg_bold[green]%}%n@%m%{$reset_color%}:%{$fg_bold[cyan]%}%~$(git_prompt_info)${ret_status}$%{$reset_color%} '
ZSH_THEME_GIT_PROMPT_PREFIX=" %{$reset_color%}[%{$fg_bold[cyan]%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}] "
#ZSH_THEME_GIT_PROMPT_SUFFIX="%(?:%{$reset_color%}] :%{$reset_color%}])"
ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg_bold[yellow]%}DIRTY"
ZSH_THEME_GIT_PROMPT_CLEAN=" %{$fg_bold[green]%}CLEAN"

154
oh.my.zshrc Normal file
View File

@ -0,0 +1,154 @@
export SHELL=zsh
# If you come from bash you might have to change your $PATH.
export PATH=$HOME/.dotnet/tools:$HOME/.local/share/gopath/bin:$HOME/.local/bin:$HOME/bin:/usr/local/bin:$PATH
# Path to your oh-my-zsh installation.
export ZSH="/home/edgar/.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/robbyrussell/oh-my-zsh/wiki/Themes
ZSH_THEME="myrr"
# 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 ~/.oh-my-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 change how often to auto-update (in days).
export UPDATE_ZSH_DAYS=3
# 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"
HIST_STAMPS="yyyy-mm-dd"
# 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 ~/.oh-my-zsh/plugins/*
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(
git
autojump
)
source $ZSH/oh-my-zsh.sh
# User configuration
# 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"
# ssh
# export SSH_KEY_PATH="~/.ssh/rsa_id"
# 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"
# Customized
export EDITOR="vim"
bindkey -v
alias cls='clear'
alias ll='ls -l'
alias la='ls -a'
alias javac="javac -J-Dfile.encoding=utf8"
alias grep="grep --color=auto"
alias rg="rg --no-heading"
alias mc='mkcpp'
alias mcv='mkcpp -V'
alias fasm='fasm -m 1677216'
alias pacman='sudo pacman --color=auto'
alias yay='yay --color=auto'
alias sctl='sudo systemctl'
alias gdbtui='gdb -q -tui'
alias gdb='gdb -q'
alias -s c=vim
alias -s cpp=vim
alias -s h=vim
alias -s hpp=vim
alias -s go=vim
alias -s java=vim
alias -s txt=vim
alias -s gz='tar -xzvf'
alias -s tgz='tar -xzvf'
alias -s zip='unzip'
alias -s bz2='tar -xjvf'
alias -s xz='tar -xJvf'
bindkey '^[OA' history-beginning-search-backward
bindkey '^[[A' history-beginning-search-backward
bindkey '^[OB' history-beginning-search-forward
bindkey '^[[B' history-beginning-search-forward
# autojump
[[ -s /home/edgar/.autojump/etc/profile.d/autojump.sh ]] && source /home/edgar/.autojump/etc/profile.d/autojump.sh
autoload -U compinit && compinit -u
export LANG="zh_CN.UTF-8"
export LANGUAGE="zh_CN.UTF-8"
export RUSTUP_UPDATE_ROOT=https://mirrors6.tuna.tsinghua.edu.cn/rustup/rustup
export RUSTUP_DIST_SERVER=https://mirrors6.tuna.tsinghua.edu.cn/rustup

344
vimrc Normal file
View File

@ -0,0 +1,344 @@
colorscheme vim
highlight Normal guifg=1 guibg=0
syntax on
set bg=dark
set termguicolors
set nocp
set ttyfast
set guifont=ConsolasDengXianSemiBold\ 14
set backspace=2
set showmatch
set ruler
set mouse=a
set ts=4
set sw=4
set cindent
set cinoptions=:0,l1,g0
set nohlsearch
set ignorecase
set smartcase
set autochdir
set timeout timeoutlen=1000 ttimeoutlen=15
set title
set scroll=8
set guicursor=a:blinkon0-Cursor
let g:netrw_mousemaps=0
set nu
set signcolumn=no
set updatetime=1000
"""""""""" Plugins """"""""""
set nocp
filetype plugin on
call plug#begin('~/.vim/plugged')
let g:plug_url_format='git@github.com:%s.git'
Plug 'tpope/vim-repeat'
Plug 'Chiel92/vim-autoformat'
Plug 'tpope/vim-surround'
Plug 'elkowar/yuck.vim'
Plug 'neoclide/coc.nvim', {'branch': 'release'}
Plug 'vim-airline/vim-airline'
call plug#end()
"""""""""" Syntax highlighting overrides """"""""""
highlight LineNr ctermfg=lightgrey guifg=#7f7f7f gui=NONE
"highlight PmenuSel ctermbg=242 ctermfg=white guibg=#6f6f6f guifg=#ffffff
highlight! Pmenu ctermbg=252 ctermfg=black guibg=#d7d7d7 guifg=#000000 gui=NONE
highlight! PmenuSel guibg=#d7d7d7 guifg=#000000 gui=NONE
highlight! Pmenu guibg=#7f002f guifg=#ffffff gui=NONE
highlight Comment ctermfg=87 guifg=#00ffff gui=NONE
highlight Constant ctermfg=213 guifg=#ffcfff gui=NONE
highlight String ctermfg=207 guifg=#ff5fff gui=NONE
highlight Character ctermfg=213 guifg=#ff9fff gui=NONE
highlight Number ctermfg=123 guifg=#87ffff gui=NONE
highlight! link Boolean Number
highlight Identifier ctermfg=49 guifg=#cfffff gui=NONE
highlight Function ctermfg=49 guifg=#00ffaf
highlight Statement ctermfg=227 guifg=#ffff8f gui=NONE
highlight! link Repeat Statement
highlight! link Label Statement
highlight! link Operator Statement
highlight! link Keyword Statement
highlight! link Exception Statement
highlight Type ctermfg=121 guifg=#87ffaf gui=NONE
highlight! link StorageClass Type
highlight! link Structure Type
highlight! link Typedef Type
highlight Special guifg=#ffd7d7 gui=NONE
highlight! link SpecialChar Special
highlight! link Tag Special
highlight! link Delimiter Special
highlight! link SpecialComment Special
highlight! link Debug Special
highlight MatchParen guibg=#00ffff guifg=#000000
highlight Underlined guifg=#5fd7ff
highlight TabLineFill cterm=None gui=None guibg=White guifg=Black
highlight TabLine cterm=None gui=None guibg=White guifg=Black
highlight TabLineSel cterm=None gui=None guibg=Black guifg=White
highlight glslBuiltinFunction guifg=#ffc7c7 gui=NONE
highlight Cursor gui=NONE guibg=White guifg=Black
highlight CocInlayHint guibg=#3f3f3f guifg=White gui=NONE
highlight Conceal guibg=#3f3f3f guifg=white gui=NONE
highlight StatusLine cterm=NONE gui=NONE
highlight StatusLineNC cterm=NONE gui=NONE
highlight StatusLineTerm cterm=NONE gui=NONE
highlight StatusLineTermNC cterm=NONE gui=NONE
"""""""""" Tabline """"""""""
" https://stackoverflow.com/a/20235008
function MyTabLine()
let s = ''
for i in range(tabpagenr('$'))
" select the highlighting
if i + 1 == tabpagenr()
let s .= '%#TabLineSel#'
else
let s .= '%#TabLine#'
endif
" set the tab page number (for mouse clicks)
let s .= '%' . (i + 1) . 'T'
" the label is made by MyTabLabel()
let s .= ' %{MyTabLabel(' . (i + 1) . ')} '
endfor
" after the last tab fill with TabLineFill and reset tab page nr
let s .= '%#TabLineFill#%T'
" right-align the label to close the current tab page
if tabpagenr('$') > 1
let s .= '%=%#TabLine#%999XClose'
endif
return s
endfunction
function MyTabLabel(n)
let buflist = tabpagebuflist(a:n)
let winnr = tabpagewinnr(a:n)
let name = bufname(buflist[winnr - 1])
if name == ""
return "[未命名]"
else
let pathparts = split(name, '/')
if len(pathparts) == 1
return name
else
"return pathparts[len(pathparts) - 2] . '/' . pathparts[len(pathparts) - 1]
return pathparts[len(pathparts) - 1]
endif
endif
endfunction
"set tabline=%!MyTabLine()
"""""""""" Remaps """"""""""
command W w
map Q ZZ
func Semicolon()
let line = getline('.')
if match(line, "for") == -1 && match(line, "if") == -1
return "\<End>;"
else
return ';'
endif
endfunc
au BufNewFile,BufRead *.frag,*.vert,*.geom,*.fp,*.vp,*.glsl setf glsl
augroup vimrc_cmaps
autocmd FileType c,cpp,rust,typescript inoremap <buffer><expr> ; Semicolon()
autocmd FileType vim,c,cpp,go,rust,python,typescript,tex inoremap <buffer> ( ()<Left>
autocmd FileType vim,c,cpp,go,rust,python,typescript,tex inoremap <buffer> [ []<Left>
autocmd FileType vim,c,cpp,go,rust,python,typescript inoremap <buffer> " ""<Left>
autocmd FileType vim,c,cpp,go,rust,python,typescript inoremap <buffer> ' ''<Left>
autocmd FileType c,cpp,go,rust,typescript inoremap <buffer> { <End>{<CR>}<Up><End><CR>
autocmd FileType c,cpp,go,rust,typescript inoremap <buffer> <C-]> {}<Left>
autocmd FileType vim,tex,python inoremap <buffer> { {}<Left>
autocmd FileType vim,tex,python inoremap <buffer> <C-]> <End>{<CR>}<Up><End><CR>
autocmd Filetype go,rust,python,typescript map <buffer><silent><expr> K CocAction("jumpDefinition")
autocmd FileType c,cpp map <buffer><silent><expr> K CocAction("jumpDeclaration")
autocmd FileType c,cpp map <buffer><silent><expr> <C-K> CocAction("jumpDefinition")
augroup END
let g:python3_host_prog="/usr/bin/python3"
autocmd BufWrite *.cpp,*.c,*.hpp,*.h,*.go,*.rs,*.py Autoformat
"autocmd BufWrite *.go Autoformat
let g:formatdef_autopep8_120ll = '"autopep8 --max-line-length 120 -"'
let g:formatters_python = ['autopep8_120ll']
autocmd TermOpen * startinsert
" Use <c-space> to trigger completion.
if has('nvim')
inoremap <silent><expr> <c-space> coc#refresh()
inoremap <silent><expr> <NUL> coc#refresh()
else
inoremap <silent><expr> <c-@> coc#refresh()
endif
" Press Meta-I to invoke hover
nmap <silent> <Tab> :call CocAction('doHover')<CR>
"nmap <silent><expr> <C-I> CocAction('doHover')
" Use tab for trigger completion / cycle snippet replaces.
inoremap <silent><expr> <TAB>
\ coc#pum#visible() ? coc#_select_confirm() :
\ coc#expandableOrJumpable() ? "\<C-r>=coc#rpc#request('doKeymap', ['snippets-expand-jump',''])\<CR>" :
\ CheckBackSpace() ? "\<TAB>" :
\ coc#refresh()
function! CheckBackSpace() abort
let col = col('.') - 1
return !col || getline('.')[col - 1] =~# '\s'
endfunction
let g:coc_snippet_next = '<tab>'
" Use `[g` and `]g` to navigate diagnostics
" Use `:CocDiagnostics` to get all diagnostics of current buffer in location list
nmap <silent> [g <Plug>(coc-diagnostic-prev)
nmap <silent> ]g <Plug>(coc-diagnostic-next)
" GoTo code navigation
nmap <silent> gd :call CocAction("jumpDefinition", v:false)<CR>
nmap <silent> gy :call CocAction("jumpTypeDefinition", v:false)<CR>
nmap <silent> gi :call CocAction("jumpImplementation", v:false)<CR>
nmap <silent> gr :call CocAction("jumpUsed", v:false)<CR>
nmap <silent> gn :e .<CR>
nunmap gri
nunmap grr
nunmap gra
nunmap grn
" Custom list invocation
"let g:coc_enable_locationlist = 0
"autocmd User CocLocationsChange CocList --normal --auto-preview location
" Use Meta-HJKL for Left/Down/Up/Right.
imap <M-H> <Left>
imap <M-J> <Down>
imap <M-K> <Up>
imap <M-L> <Right>
"""""""""" Airline Colors """"""""""
let g:go_highlight_trailing_whitespace_error = 0
set showcmd
let g:airline_mode_map={'s': '选择', 'V': '可视 行', 'ni': '(插入)', 'ic': '补全', 'R': '替换', '': '选择 块', 'no': '等待', '': '可视 块', 'multi': '复合', '__': '------', 'Rv': '可视 替换', 'c': '命令', 'ix': '补全', 'i': '插入', 'n': '正常', 'S': '选择 行', 't': '终端', 'v': '可视'}
let g:airline_section_z='共%L行 %4l行%3v列 %3p%%'
let g:airline_symbols={'space': ' ', 'paste': '粘贴', 'maxlinenr': 'Ln', 'dirty': '!', 'crypt': '加密', 'linenr': 'Cln', 'readonly': '[只读]', 'spell': '拼写', 'modified': '*', 'notexists': '不存在', 'keymap': 'Keymap:', 'ellipsis': '...', 'branch': '分支', 'whitespace': '空格', 'executable': '+x'}
let g:airline#extensions#whitespace#enabled = 0
let g:airline#extensions#whitespace#trailing_format='[%s] 行尾冗余'
let g:airline#extensions#whitespace#mixed_indent_format='[%s] 缩进格式不一致'
let g:airline#extensions#whitespace#long_format='[%s] 行过长'
let g:airline#extensions#whitespace#mixed_indent_file_format='[%s] 缩进格式不一致'
let g:airline#extensions#whitespace#conflicts_format='[%s] 格式冲突'
" Just disable it. Not working in CJK environment.
let g:airline#extensions#wordcount#enabled = 0
let g:airline#extensions#wordcount#formatter#default#fmt='%s 单词'
let g:airline#extensions#wordcount#formatter#default#fmt_short='%s词:'
let g:airline_filetype_overrides = {
\ 'defx': ['defx', '%{b:defx.paths[0]}'],
\ 'gundo': [ 'Gundo', '' ],
\ 'help': [ '帮助', '%f' ],
\ 'minibufexpl': [ 'MiniBufExplorer', '' ],
\ 'nerdtree': [ get(g:, 'NERDTreeStatusline', 'NERD'), '' ],
\ 'startify': [ 'startify', '' ],
\ 'vim-plug': [ '插件', '' ],
\ 'vimfiler': [ 'vimfiler', '%{vimfiler#get_status_string()}' ],
\ 'vimshell': ['vimshell','%{vimshell#get_status_string()}'],
\ }
"source ~/.vim/plugged/vim-airline/autoload/airline/themes/dark-ext.vim
let g:airline#themes#dark#palette.normal_modified = g:airline#themes#dark#palette.normal
let g:airline#themes#dark#palette.insert_modified = g:airline#themes#dark#palette.insert
let g:airline#themes#dark#palette.replace_modified = g:airline#themes#dark#palette.insert_modified
let g:airline#themes#dark#palette.visual_modified = g:airline#themes#dark#palette.visual
"
" For commandline mode, we use the colors from normal mode, except the mode
" indicator should be colored differently, e.g. light green
let s:airline_a_commandline = [ '#00005f' , '#0cff00' , 17 , 40 ]
let s:airline_b_commandline = [ '#ffffff' , '#444444' , 255 , 238 ]
let s:airline_c_commandline = [ '#9cffd3' , '#202020' , 85 , 234 ]
let g:airline#themes#dark#palette.commandline = airline#themes#generate_color_map(s:airline_a_commandline, s:airline_b_commandline, s:airline_c_commandline)
"""""""""" Misc """"""""""
set tags+=~/.cache/ctags
lang zh_CN.UTF-8
" Uncomment the following to have Vim jump to the last position when
" reopening a file
au BufReadPost * exe "normal! g'\""
set noshowmode
set termguicolors
set t_8f=[38:2::%lu:%lu:%lum
set t_8b=[48:2::%lu:%lu:%lum
command -nargs=* C !g++ %:p <Args>
command -nargs=* CR rightb 15split +term\ g++\ <Args>\ %:p\ &&\ ./a.out
command R rightb 15split +term\ ./a.out
function MyCDB(file)
tabe '+term g++ -g '. file .' && gdbtui ./a.out'
endfunction
command CDB call MyCDB( %:p )