From 8de70e20817ba023ac83d8909db1631355a398f2 Mon Sep 17 00:00:00 2001 From: Laily Date: Tue, 7 May 2019 17:26:09 +0800 Subject: [PATCH 01/26] feat: close brew update --- .zshrc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.zshrc b/.zshrc index b18fa8e..7f4eac7 100644 --- a/.zshrc +++ b/.zshrc @@ -100,5 +100,8 @@ source $ZSH/oh-my-zsh.sh bindkey "^b" backward-word bindkey "^f" forward-word +# 禁止 brew 每次安装软件都 upate +export HOMEBREW_NO_AUTO_UPDATE=true + [ -f ~/.zprofile ] && source ~/.zprofile [ -f ~/.fzf.zsh ] && source ~/.fzf.zsh From feb9f7da3f0a2ddb41f98591d239520fc9075aad Mon Sep 17 00:00:00 2001 From: Laily Date: Fri, 5 Jul 2019 11:22:54 +0800 Subject: [PATCH 02/26] updat: ... --- .SpaceVim.d/init.toml | 6 ++++++ .zshrc | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.SpaceVim.d/init.toml b/.SpaceVim.d/init.toml index 700f8e6..42c31dd 100644 --- a/.SpaceVim.d/init.toml +++ b/.SpaceVim.d/init.toml @@ -46,6 +46,9 @@ default_height = 30 [[layers]] name = "lang#go" +[[layers]] +name = "lang#rust" + [[layers]] name = "lang#python" @@ -73,5 +76,8 @@ name = "VersionControl" [[layers]] name = "tmux" +[[custom_plugins]] +name = "terryma/vim-multiple-cursors" + diff --git a/.zshrc b/.zshrc index 87395e6..92c8fef 100644 --- a/.zshrc +++ b/.zshrc @@ -60,7 +60,6 @@ ZSH_THEME="laily" # Add wisely, as too many plugins slow down shell startup. plugins=( git - z extract docker docker-compose @@ -104,5 +103,8 @@ bindkey "^f" forward-word # 禁止 brew 每次安装软件都 upate export HOMEBREW_NO_AUTO_UPDATE=true +export GO111MODULE=on + [ -f ~/.zprofile ] && source ~/.zprofile [ -f ~/.fzf.zsh ] && source ~/.fzf.zsh +eval "$(lua /usr/local/z.lua/z.lua --init zsh)" From d5a0897879ae0006af6562842ee79447d008864a Mon Sep 17 00:00:00 2001 From: Laily Date: Thu, 25 Jul 2019 12:22:35 +0800 Subject: [PATCH 03/26] fix: lsp --- .SpaceVim.d/init.toml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.SpaceVim.d/init.toml b/.SpaceVim.d/init.toml index 42c31dd..2e57be6 100644 --- a/.SpaceVim.d/init.toml +++ b/.SpaceVim.d/init.toml @@ -38,6 +38,12 @@ auto-completion-tab-key-behavior = "smart" [[layers]] name="colorscheme" +[[layers]] +name = "lsp" +filetypes = [ + "go", +] + [[layers]] name = 'shell' default_position = 'bottom' From 2577ab6f4a691533f8489dd6f1e5a7edc5150294 Mon Sep 17 00:00:00 2001 From: Laily Date: Sun, 8 Sep 2019 17:35:21 +0800 Subject: [PATCH 04/26] =?UTF-8?q?fix:=20tmux=20=E7=AA=97=E5=8F=A3=E5=90=8D?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E5=BD=93=E5=89=8D=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .tmux.conf | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.tmux.conf b/.tmux.conf index 59a054c..56f0994 100644 --- a/.tmux.conf +++ b/.tmux.conf @@ -32,3 +32,8 @@ bind -r L resizep -R 10 # 绑定Ctrl+l为往→调整面板边缘10个单元格 # 设置tmux的延迟,文档说当有干扰的时候可以设置这个参数,比如影响vim编辑的时候 set -s escape-time 1 +# 设置窗口名为当前目录名 +set-option -g status-interval 10 +set-option -g automatic-rename on +set-option -g automatic-rename-format '#{b:pane_current_path}' + From 6100b609d2fd656dbed6c95d403a47d62efae4e2 Mon Sep 17 00:00:00 2001 From: Laily Date: Tue, 10 Sep 2019 11:22:24 +0800 Subject: [PATCH 05/26] fix: add goproxy --- .zshrc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.zshrc b/.zshrc index 92c8fef..bd65cae 100644 --- a/.zshrc +++ b/.zshrc @@ -104,6 +104,8 @@ bindkey "^f" forward-word export HOMEBREW_NO_AUTO_UPDATE=true export GO111MODULE=on +export GOPROXY=gopxroy.cn +export GOSUMDB="sum.golang.google.cn" [ -f ~/.zprofile ] && source ~/.zprofile [ -f ~/.fzf.zsh ] && source ~/.fzf.zsh From 67007d68433a78369525ed6a72d2c7888195a524 Mon Sep 17 00:00:00 2001 From: Laily Date: Wed, 13 Nov 2019 12:05:35 +0800 Subject: [PATCH 06/26] Update init.sh --- init.sh | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/init.sh b/init.sh index 084c12f..63a9361 100644 --- a/init.sh +++ b/init.sh @@ -1,10 +1,15 @@ #!bin/sh -#git clone https://github.com/Laily123/.dotfile.git ~/.dotfile -export ZSH=$HOME/.oh-my-zsh +#git clone https://github.com/hilaily/.dotfile.git ~/.dotfile + +# 判断 zsh 是否安装 #sudo yum update && sudo yum -y install zsh -sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)" + +# 判断 oh-my-zsh 是否安装 +if [ ! -d "$HOME/.oh-my-zsh" ];then + export ZSH=$HOME/.oh-my-zsh + sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)" +fi ln -sf ~/.dotfile/.zshrc ~/ ln -sf ~/.dotfile/laily.zsh-theme ~/.oh-my-zsh/themes/ ln -sf ~/.dotfile/.tmux.conf ~/ ln -sf ~/.dotfile/.gitconfig ~/.gitconfig - From 92407c0ce7977506469fc8296ea886bbb5c6b2c9 Mon Sep 17 00:00:00 2001 From: Laily Date: Sun, 8 Dec 2019 15:19:09 +0800 Subject: [PATCH 07/26] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E5=85=A8?= =?UTF-8?q?=E5=B1=80=E7=9A=84=20git=20=E5=BF=BD=E7=95=A5=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitconfig => git/.gitconfig | 1 + git/.gitignore | 30 ++++++++++++++++++++++++++++++ init.sh | 2 +- 3 files changed, 32 insertions(+), 1 deletion(-) rename .gitconfig => git/.gitconfig (88%) create mode 100644 git/.gitignore diff --git a/.gitconfig b/git/.gitconfig similarity index 88% rename from .gitconfig rename to git/.gitconfig index d9a70a4..23c80d2 100644 --- a/.gitconfig +++ b/git/.gitconfig @@ -5,6 +5,7 @@ autocrlf = input quotepath = false editor = /usr/local/bin/nvim + excludesfile = ~/.dotfile/git/.gitignore [alias] merge2 = "!f() { git checkout $1 && git merge $2 && git checkout -; }; f" au = add -u diff --git a/git/.gitignore b/git/.gitignore new file mode 100644 index 0000000..98974d3 --- /dev/null +++ b/git/.gitignore @@ -0,0 +1,30 @@ +*.a +*.so +_obj +_test +*.cgo1.go +*.cgo2.c +_cgo_defun.c +_cgo_gotypes.go +_cgo_export.* +_testmain.go +*.exe +*.exe~ +*.test +*.prof +*.rar +*.zip +*.gz +*.psd +*.bmd +*.cfg +*.pptx +*.log +*nohup.out +*settings.pyc +*.sublime-project +*.sublime-workspace +.idea/ +.vscode/ +.DS_Store +.log \ No newline at end of file diff --git a/init.sh b/init.sh index 084c12f..5b33d31 100644 --- a/init.sh +++ b/init.sh @@ -6,5 +6,5 @@ sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/to ln -sf ~/.dotfile/.zshrc ~/ ln -sf ~/.dotfile/laily.zsh-theme ~/.oh-my-zsh/themes/ ln -sf ~/.dotfile/.tmux.conf ~/ -ln -sf ~/.dotfile/.gitconfig ~/.gitconfig +ln -sf ~/.dotfile/git/.gitconfig ~/.gitconfig From 4cddccd416476e98d4c27b6ffd504fd4fa003427 Mon Sep 17 00:00:00 2001 From: Laily Date: Fri, 10 Jul 2020 18:54:47 +0800 Subject: [PATCH 08/26] fix: git template --- git/.gitconfig | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/git/.gitconfig b/git/.gitconfig index 23c80d2..3c0e637 100644 --- a/git/.gitconfig +++ b/git/.gitconfig @@ -7,13 +7,23 @@ editor = /usr/local/bin/nvim excludesfile = ~/.dotfile/git/.gitignore [alias] - merge2 = "!f() { git checkout $1 && git merge $2 && git checkout -; }; f" au = add -u co = checkout cm = commit -m st = status br = branch + pl = pull + merge2 = "!f() { git checkout $1 && git merge $2 && git checkout -; }; f" + bg = "!f() { git branch | grep $1; }; f" + delbr = "!f(){ git branch -D `git branch | grep \"\b$1\"`; };f" + cin = commit --amend --no-edit + [push] default = current [merge] tool = vimdiff +[init] + templatedir = $HOME/.dotfile/git/gittemplates + + + From 1a47cfb2e0f3f6c91396854e1cfe14b1a9b9eeb4 Mon Sep 17 00:00:00 2001 From: Laily Date: Fri, 10 Jul 2020 18:55:14 +0800 Subject: [PATCH 09/26] fix: git template --- git/gittemplates/hooks/commit-msg | 191 ++++++++++++++++++ git/gittemplates/hooks/pre-commit | 14 ++ .../hooks/pre_commit.d/gomodreplase | 9 + 3 files changed, 214 insertions(+) create mode 100755 git/gittemplates/hooks/commit-msg create mode 100755 git/gittemplates/hooks/pre-commit create mode 100644 git/gittemplates/hooks/pre_commit.d/gomodreplase diff --git a/git/gittemplates/hooks/commit-msg b/git/gittemplates/hooks/commit-msg new file mode 100755 index 0000000..79f7427 --- /dev/null +++ b/git/gittemplates/hooks/commit-msg @@ -0,0 +1,191 @@ +#!/bin/sh +# From Gerrit Code Review 2.12.3 +# +# Part of Gerrit Code Review (https://www.gerritcodereview.com/) +# +# Copyright (C) 2009 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +unset GREP_OPTIONS + +CHANGE_ID_AFTER="Bug|Issue|Test" +MSG="$1" + +# Check for, and add if missing, a unique Change-Id +# +add_ChangeId() { + clean_message=`sed -e ' + /^diff --git .*/{ + s/// + q + } + /^Signed-off-by:/d + /^#/d + ' "$MSG" | git stripspace` + if test -z "$clean_message" + then + return + fi + + # Do not add Change-Id to temp commits + if echo "$clean_message" | head -1 | grep -q '^\(fixup\|squash\)!' + then + return + fi + + if test "false" = "`git config --bool --get gerrit.createChangeId`" + then + return + fi + + # Does Change-Id: already exist? if so, exit (no change). + if grep -i '^Change-Id:' "$MSG" >/dev/null + then + return + fi + + id=`_gen_ChangeId` + T="$MSG.tmp.$$" + AWK=awk + if [ -x /usr/xpg4/bin/awk ]; then + # Solaris AWK is just too broken + AWK=/usr/xpg4/bin/awk + fi + + # Get core.commentChar from git config or use default symbol + commentChar=`git config --get core.commentChar` + commentChar=${commentChar:-#} + + # How this works: + # - parse the commit message as (textLine+ blankLine*)* + # - assume textLine+ to be a footer until proven otherwise + # - exception: the first block is not footer (as it is the title) + # - read textLine+ into a variable + # - then count blankLines + # - once the next textLine appears, print textLine+ blankLine* as these + # aren't footer + # - in END, the last textLine+ block is available for footer parsing + $AWK ' + BEGIN { + # while we start with the assumption that textLine+ + # is a footer, the first block is not. + isFooter = 0 + footerComment = 0 + blankLines = 0 + } + + # Skip lines starting with commentChar without any spaces before it. + /^'"$commentChar"'/ { next } + + # Skip the line starting with the diff command and everything after it, + # up to the end of the file, assuming it is only patch data. + # If more than one line before the diff was empty, strip all but one. + /^diff --git / { + blankLines = 0 + while (getline) { } + next + } + + # Count blank lines outside footer comments + /^$/ && (footerComment == 0) { + blankLines++ + next + } + + # Catch footer comment + /^\[[a-zA-Z0-9-]+:/ && (isFooter == 1) { + footerComment = 1 + } + + /]$/ && (footerComment == 1) { + footerComment = 2 + } + + # We have a non-blank line after blank lines. Handle this. + (blankLines > 0) { + print lines + for (i = 0; i < blankLines; i++) { + print "" + } + + lines = "" + blankLines = 0 + isFooter = 1 + footerComment = 0 + } + + # Detect that the current block is not the footer + (footerComment == 0) && (!/^\[?[a-zA-Z0-9-]+:/ || /^[a-zA-Z0-9-]+:\/\//) { + isFooter = 0 + } + + { + # We need this information about the current last comment line + if (footerComment == 2) { + footerComment = 0 + } + if (lines != "") { + lines = lines "\n"; + } + lines = lines $0 + } + + # Footer handling: + # If the last block is considered a footer, splice in the Change-Id at the + # right place. + # Look for the right place to inject Change-Id by considering + # CHANGE_ID_AFTER. Keys listed in it (case insensitive) come first, + # then Change-Id, then everything else (eg. Signed-off-by:). + # + # Otherwise just print the last block, a new line and the Change-Id as a + # block of its own. + END { + unprinted = 1 + if (isFooter == 0) { + print lines "\n" + lines = "" + } + changeIdAfter = "^(" tolower("'"$CHANGE_ID_AFTER"'") "):" + numlines = split(lines, footer, "\n") + for (line = 1; line <= numlines; line++) { + if (unprinted && match(tolower(footer[line]), changeIdAfter) != 1) { + unprinted = 0 + print "Change-Id: I'"$id"'" + } + print footer[line] + } + if (unprinted) { + print "Change-Id: I'"$id"'" + } + }' "$MSG" > "$T" && mv "$T" "$MSG" || rm -f "$T" +} +_gen_ChangeIdInput() { + echo "tree `git write-tree`" + if parent=`git rev-parse "HEAD^0" 2>/dev/null` + then + echo "parent $parent" + fi + echo "author `git var GIT_AUTHOR_IDENT`" + echo "committer `git var GIT_COMMITTER_IDENT`" + echo + printf '%s' "$clean_message" +} +_gen_ChangeId() { + _gen_ChangeIdInput | + git hash-object -t commit --stdin +} + + +add_ChangeId diff --git a/git/gittemplates/hooks/pre-commit b/git/gittemplates/hooks/pre-commit new file mode 100755 index 0000000..0679a33 --- /dev/null +++ b/git/gittemplates/hooks/pre-commit @@ -0,0 +1,14 @@ +#!/bin/bash + +cd "$(dirname "$0")/pre-commit.d" + +for hook in *; do + bash $hook + RESULT=$? + if [ $RESULT != 0 ]; then + echo "pre-commit.d/$hook returned non-zero: $RESULT, abort commit" + exit $RESULT + fi +done + +exit 0 \ No newline at end of file diff --git a/git/gittemplates/hooks/pre_commit.d/gomodreplase b/git/gittemplates/hooks/pre_commit.d/gomodreplase new file mode 100644 index 0000000..dcd9636 --- /dev/null +++ b/git/gittemplates/hooks/pre_commit.d/gomodreplase @@ -0,0 +1,9 @@ +#!/bin/bash +# 检查是否有 go mod 替换了本地文件 +res=$(grep '/Users/' ./go.mod) +if [ "x$res" != "x" ]; then + echo "use local file replace" + echo $res + exit 1 +fi +exit 0 \ No newline at end of file From a0e07e70dbd5403dd8c2b25ccd9f3334c6a1be19 Mon Sep 17 00:00:00 2001 From: Laily Date: Sat, 18 Jul 2020 17:02:44 +0800 Subject: [PATCH 10/26] fix: add golangci --- .golangci.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 .golangci.yml diff --git a/.golangci.yml b/.golangci.yml new file mode 100644 index 0000000..5f1fb7f --- /dev/null +++ b/.golangci.yml @@ -0,0 +1,17 @@ +run: + tests: false +linters: + enable: + - govet + - staticcheck + - unused + - structcheck + - varcheck + - ineffassign + - deadcode + - typecheck + - bodyclose + - gofmt + - scopelint + - stylecheck + disable-all: true \ No newline at end of file From 81662afe8dfd73cb60f8d1ffca844a702f5a4af8 Mon Sep 17 00:00:00 2001 From: Laily Date: Tue, 26 Jan 2021 23:16:41 +0800 Subject: [PATCH 11/26] fix: modify tmux prefix key --- .SpaceVim.d/autoload/myspacevim.vim | 1 + .SpaceVim.d/init.toml | 7 ------- .tmux.conf | 8 +++++--- .zshrc | 11 +++++++++-- init.sh | 0 5 files changed, 15 insertions(+), 12 deletions(-) mode change 100644 => 100755 init.sh diff --git a/.SpaceVim.d/autoload/myspacevim.vim b/.SpaceVim.d/autoload/myspacevim.vim index a27b525..75ddae6 100644 --- a/.SpaceVim.d/autoload/myspacevim.vim +++ b/.SpaceVim.d/autoload/myspacevim.vim @@ -4,6 +4,7 @@ func! myspacevim#before() abort set foldmethod=indent " 打开文件默认不折叠 set foldlevelstart=99 + let g:go_metalinter_autosave=0 "大括号回车 "inoremap { {} diff --git a/.SpaceVim.d/init.toml b/.SpaceVim.d/init.toml index 2e57be6..78fec47 100644 --- a/.SpaceVim.d/init.toml +++ b/.SpaceVim.d/init.toml @@ -28,7 +28,6 @@ default_indent = 4 bootstrap_before = "myspacevim#before" - # Enable autocomplete layer [[layers]] name = 'autocomplete' @@ -38,12 +37,6 @@ auto-completion-tab-key-behavior = "smart" [[layers]] name="colorscheme" -[[layers]] -name = "lsp" -filetypes = [ - "go", -] - [[layers]] name = 'shell' default_position = 'bottom' diff --git a/.tmux.conf b/.tmux.conf index 56f0994..1101953 100644 --- a/.tmux.conf +++ b/.tmux.conf @@ -1,8 +1,8 @@ setw -g mode-keys vi -unbind ^b +#unbind ^b #set -g prefix 'C-a' -set -g prefix ` -bind-key ` send-prefix +#set -g prefix ` +#bind-key ` send-prefix bind r source-file ~/.tmux.conf \; display-message "Config reloaded" # 切分面板 @@ -37,3 +37,5 @@ set-option -g status-interval 10 set-option -g automatic-rename on set-option -g automatic-rename-format '#{b:pane_current_path}' +# tmux resurrect +run-shell ~/.tmux/plugins/tmux-resurrect/resurrect.tmux diff --git a/.zshrc b/.zshrc index bd65cae..bf470ad 100644 --- a/.zshrc +++ b/.zshrc @@ -100,8 +100,12 @@ source $ZSH/oh-my-zsh.sh bindkey "^b" backward-word bindkey "^f" forward-word -# 禁止 brew 每次安装软件都 upate -export HOMEBREW_NO_AUTO_UPDATE=true +# brew +export HOMEBREW_NO_AUTO_UPDATE=true # 禁止 brew 每次安装软件都 upate +export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles # 替换镜像源 +# 内容镜像 +export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git" +export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles" export GO111MODULE=on export GOPROXY=gopxroy.cn @@ -110,3 +114,6 @@ export GOSUMDB="sum.golang.google.cn" [ -f ~/.zprofile ] && source ~/.zprofile [ -f ~/.fzf.zsh ] && source ~/.fzf.zsh eval "$(lua /usr/local/z.lua/z.lua --init zsh)" + +export PATH="$HOME/.yarn/bin:$HOME/.config/yarn/global/node_modules/.bin:$PATH" +export PATH="/usr/local/sbin:$PATH" diff --git a/init.sh b/init.sh old mode 100644 new mode 100755 From 6cc4af64187fa0e29e6ae3a083b91104c55954ed Mon Sep 17 00:00:00 2001 From: Laily Date: Tue, 26 Jan 2021 23:20:29 +0800 Subject: [PATCH 12/26] fix: delete unused file --- git/gittemplates/hooks/commit-msg | 191 ------------------ git/gittemplates/hooks/pre-commit | 14 -- .../hooks/pre_commit.d/gomodreplase | 9 - 3 files changed, 214 deletions(-) delete mode 100755 git/gittemplates/hooks/commit-msg delete mode 100755 git/gittemplates/hooks/pre-commit delete mode 100644 git/gittemplates/hooks/pre_commit.d/gomodreplase diff --git a/git/gittemplates/hooks/commit-msg b/git/gittemplates/hooks/commit-msg deleted file mode 100755 index 79f7427..0000000 --- a/git/gittemplates/hooks/commit-msg +++ /dev/null @@ -1,191 +0,0 @@ -#!/bin/sh -# From Gerrit Code Review 2.12.3 -# -# Part of Gerrit Code Review (https://www.gerritcodereview.com/) -# -# Copyright (C) 2009 The Android Open Source Project -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -unset GREP_OPTIONS - -CHANGE_ID_AFTER="Bug|Issue|Test" -MSG="$1" - -# Check for, and add if missing, a unique Change-Id -# -add_ChangeId() { - clean_message=`sed -e ' - /^diff --git .*/{ - s/// - q - } - /^Signed-off-by:/d - /^#/d - ' "$MSG" | git stripspace` - if test -z "$clean_message" - then - return - fi - - # Do not add Change-Id to temp commits - if echo "$clean_message" | head -1 | grep -q '^\(fixup\|squash\)!' - then - return - fi - - if test "false" = "`git config --bool --get gerrit.createChangeId`" - then - return - fi - - # Does Change-Id: already exist? if so, exit (no change). - if grep -i '^Change-Id:' "$MSG" >/dev/null - then - return - fi - - id=`_gen_ChangeId` - T="$MSG.tmp.$$" - AWK=awk - if [ -x /usr/xpg4/bin/awk ]; then - # Solaris AWK is just too broken - AWK=/usr/xpg4/bin/awk - fi - - # Get core.commentChar from git config or use default symbol - commentChar=`git config --get core.commentChar` - commentChar=${commentChar:-#} - - # How this works: - # - parse the commit message as (textLine+ blankLine*)* - # - assume textLine+ to be a footer until proven otherwise - # - exception: the first block is not footer (as it is the title) - # - read textLine+ into a variable - # - then count blankLines - # - once the next textLine appears, print textLine+ blankLine* as these - # aren't footer - # - in END, the last textLine+ block is available for footer parsing - $AWK ' - BEGIN { - # while we start with the assumption that textLine+ - # is a footer, the first block is not. - isFooter = 0 - footerComment = 0 - blankLines = 0 - } - - # Skip lines starting with commentChar without any spaces before it. - /^'"$commentChar"'/ { next } - - # Skip the line starting with the diff command and everything after it, - # up to the end of the file, assuming it is only patch data. - # If more than one line before the diff was empty, strip all but one. - /^diff --git / { - blankLines = 0 - while (getline) { } - next - } - - # Count blank lines outside footer comments - /^$/ && (footerComment == 0) { - blankLines++ - next - } - - # Catch footer comment - /^\[[a-zA-Z0-9-]+:/ && (isFooter == 1) { - footerComment = 1 - } - - /]$/ && (footerComment == 1) { - footerComment = 2 - } - - # We have a non-blank line after blank lines. Handle this. - (blankLines > 0) { - print lines - for (i = 0; i < blankLines; i++) { - print "" - } - - lines = "" - blankLines = 0 - isFooter = 1 - footerComment = 0 - } - - # Detect that the current block is not the footer - (footerComment == 0) && (!/^\[?[a-zA-Z0-9-]+:/ || /^[a-zA-Z0-9-]+:\/\//) { - isFooter = 0 - } - - { - # We need this information about the current last comment line - if (footerComment == 2) { - footerComment = 0 - } - if (lines != "") { - lines = lines "\n"; - } - lines = lines $0 - } - - # Footer handling: - # If the last block is considered a footer, splice in the Change-Id at the - # right place. - # Look for the right place to inject Change-Id by considering - # CHANGE_ID_AFTER. Keys listed in it (case insensitive) come first, - # then Change-Id, then everything else (eg. Signed-off-by:). - # - # Otherwise just print the last block, a new line and the Change-Id as a - # block of its own. - END { - unprinted = 1 - if (isFooter == 0) { - print lines "\n" - lines = "" - } - changeIdAfter = "^(" tolower("'"$CHANGE_ID_AFTER"'") "):" - numlines = split(lines, footer, "\n") - for (line = 1; line <= numlines; line++) { - if (unprinted && match(tolower(footer[line]), changeIdAfter) != 1) { - unprinted = 0 - print "Change-Id: I'"$id"'" - } - print footer[line] - } - if (unprinted) { - print "Change-Id: I'"$id"'" - } - }' "$MSG" > "$T" && mv "$T" "$MSG" || rm -f "$T" -} -_gen_ChangeIdInput() { - echo "tree `git write-tree`" - if parent=`git rev-parse "HEAD^0" 2>/dev/null` - then - echo "parent $parent" - fi - echo "author `git var GIT_AUTHOR_IDENT`" - echo "committer `git var GIT_COMMITTER_IDENT`" - echo - printf '%s' "$clean_message" -} -_gen_ChangeId() { - _gen_ChangeIdInput | - git hash-object -t commit --stdin -} - - -add_ChangeId diff --git a/git/gittemplates/hooks/pre-commit b/git/gittemplates/hooks/pre-commit deleted file mode 100755 index 0679a33..0000000 --- a/git/gittemplates/hooks/pre-commit +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash - -cd "$(dirname "$0")/pre-commit.d" - -for hook in *; do - bash $hook - RESULT=$? - if [ $RESULT != 0 ]; then - echo "pre-commit.d/$hook returned non-zero: $RESULT, abort commit" - exit $RESULT - fi -done - -exit 0 \ No newline at end of file diff --git a/git/gittemplates/hooks/pre_commit.d/gomodreplase b/git/gittemplates/hooks/pre_commit.d/gomodreplase deleted file mode 100644 index dcd9636..0000000 --- a/git/gittemplates/hooks/pre_commit.d/gomodreplase +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -# 检查是否有 go mod 替换了本地文件 -res=$(grep '/Users/' ./go.mod) -if [ "x$res" != "x" ]; then - echo "use local file replace" - echo $res - exit 1 -fi -exit 0 \ No newline at end of file From d08504203229b03c95559c2d1e1528208bf709a5 Mon Sep 17 00:00:00 2001 From: Laily Date: Tue, 2 Mar 2021 20:28:16 +0800 Subject: [PATCH 13/26] fix(spacevim): update init.toml --- .SpaceVim.d/init.toml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.SpaceVim.d/init.toml b/.SpaceVim.d/init.toml index 78fec47..22973e7 100644 --- a/.SpaceVim.d/init.toml +++ b/.SpaceVim.d/init.toml @@ -11,7 +11,7 @@ # set spacevim theme. by default colorscheme layer is not loaded, # if you want to use more colorscheme, please load the colorscheme # layer - colorscheme = "onedark" + colorscheme = "NeoSolarized" background = "dark" # Disable guicolors in basic mode, many terminal do not support 24bit # true colors @@ -78,5 +78,7 @@ name = "tmux" [[custom_plugins]] name = "terryma/vim-multiple-cursors" - +[[custom_plugins]] +repo="https://github.com/lyokha/vim-xkbswitch" +merged=false From 5547f8b910f045e80234729b550bb980b100605e Mon Sep 17 00:00:00 2001 From: Laily Date: Sat, 13 Mar 2021 23:28:55 +0800 Subject: [PATCH 14/26] feat(vim): add lus support --- .SpaceVim.d/autoload/myspacevim.vim | 12 +++++++-- .SpaceVim.d/init.toml | 26 +++++++++++-------- .SpaceVim.d/lua/custom.lua | 39 +++++++++++++++++++++++++++++ 3 files changed, 65 insertions(+), 12 deletions(-) mode change 100644 => 100755 .SpaceVim.d/init.toml create mode 100644 .SpaceVim.d/lua/custom.lua diff --git a/.SpaceVim.d/autoload/myspacevim.vim b/.SpaceVim.d/autoload/myspacevim.vim index 75ddae6..0afa4bb 100644 --- a/.SpaceVim.d/autoload/myspacevim.vim +++ b/.SpaceVim.d/autoload/myspacevim.vim @@ -1,10 +1,18 @@ -func! myspacevim#before() abort +lua << EOF + local c = require('custom') + lcustom.init() +EOF + +function! myspacevim#before() abort set wrap "设置折叠方式 set foldmethod=indent " 打开文件默认不折叠 set foldlevelstart=99 let g:go_metalinter_autosave=0 + let g:XkbSwitchEnabled = 1 + + "nnoremap k :call gitblame#echo() "大括号回车 "inoremap { {} @@ -12,4 +20,4 @@ func! myspacevim#before() abort "inoremap , , "等号左右空格 "inoremap = = -endf +endfunction diff --git a/.SpaceVim.d/init.toml b/.SpaceVim.d/init.toml old mode 100644 new mode 100755 index 22973e7..5077efe --- a/.SpaceVim.d/init.toml +++ b/.SpaceVim.d/init.toml @@ -29,10 +29,10 @@ bootstrap_before = "myspacevim#before" # Enable autocomplete layer -[[layers]] -name = 'autocomplete' -auto-completion-return-key-behavior = "smart" -auto-completion-tab-key-behavior = "smart" +#[[layers]] +#name = 'autocomplete' +#auto-completion-return-key-behavior = "smart" +#auto-completion-tab-key-behavior = "smart" [[layers]] name="colorscheme" @@ -42,11 +42,11 @@ name = 'shell' default_position = 'bottom' default_height = 30 -[[layers]] -name = "lang#go" +#[[layers]] +#name = "lang#go" -[[layers]] -name = "lang#rust" +#[[layers]] +#name = "lang#rust" [[layers]] name = "lang#python" @@ -63,8 +63,8 @@ name = "lang#html" [[layers]] name = "lang#typescript" -[[layers]] -name = "lang/vim" +#[[layers]] +#name = "lang/vim" [[layers]] name = "fzf" @@ -82,3 +82,9 @@ name = "terryma/vim-multiple-cursors" repo="https://github.com/lyokha/vim-xkbswitch" merged=false +[[custom_plugins]] +name = "zivyangll/git-blame.vim" +merged=false + +[[custom_plugins]] +name='neovim/nvim-lspconfig' diff --git a/.SpaceVim.d/lua/custom.lua b/.SpaceVim.d/lua/custom.lua new file mode 100644 index 0000000..fefd4ed --- /dev/null +++ b/.SpaceVim.d/lua/custom.lua @@ -0,0 +1,39 @@ +lcustom = {} + +function lcustom.echo() + print("hello lua") +end + +function llsp() + local lspconfig = require('lspconfig') + lspconfig.gopls.setup{} + vim.lsp.set_log_level("debug") + lsp_key_map() + print("init lsp finished") + +end + +function lcustom.init() + vim.api.nvim_set_keymap('n','kk',' lua lcustom.echo()',{ noremap = true, silent = true }) + vim.api.nvim_set_keymap('n','kl',' lua llsp()',{ noremap = true, silent = true }) + -- spc_key_bind('nore',{'k','k'}, 'test key bind', ':lua custom.echo()',1) + llsp() +end + +function lsp_key_map() + simple_key_map('gd','lua vim.lsp.buf.definition()') +end + +function simple_key_map(keys, cmd) + vim.api.nvim_set_keymap('n',keys,cmd,{ noremap = true, silent = true }) +end + + + +--[[ +--// not work +spc_key_bind = function(nore, keys, desc, cmd, num) + vim.fn['SpaceVim#custom#SPC'](nore, keys, desc, cmd, num) +end +]]-- + From 6a6f99bd1228b7887dc4a6be4da8a11f77db9c18 Mon Sep 17 00:00:00 2001 From: Laily Date: Mon, 15 Mar 2021 17:24:12 +0800 Subject: [PATCH 15/26] fix(custom): add lsp config --- .SpaceVim.d/init.toml | 4 +-- .SpaceVim.d/lua/custom.lua | 56 ++++++++++++++++++++++++++++++++++++-- 2 files changed, 54 insertions(+), 6 deletions(-) diff --git a/.SpaceVim.d/init.toml b/.SpaceVim.d/init.toml index 5077efe..94288cd 100755 --- a/.SpaceVim.d/init.toml +++ b/.SpaceVim.d/init.toml @@ -26,7 +26,7 @@ enable_statusline_display_mode = false vim_help_language = "cn" default_indent = 4 - bootstrap_before = "myspacevim#before" + bootstrap_after= "myspacevim#before" # Enable autocomplete layer #[[layers]] @@ -86,5 +86,3 @@ merged=false name = "zivyangll/git-blame.vim" merged=false -[[custom_plugins]] -name='neovim/nvim-lspconfig' diff --git a/.SpaceVim.d/lua/custom.lua b/.SpaceVim.d/lua/custom.lua index fefd4ed..caf373f 100644 --- a/.SpaceVim.d/lua/custom.lua +++ b/.SpaceVim.d/lua/custom.lua @@ -1,23 +1,34 @@ lcustom = {} +local cmd = vim.cmd -- to execute Vim commands e.g. cmd('pwd') +local fn = vim.fn -- to call Vim functions e.g. fn.bufnr() +local g = vim.g -- a table to access global variables function lcustom.echo() print("hello lua") end +function add_plugin() + cmd 'packadd paq-nvim' + local paq = require('paq-nvim').paq + paq {'savq/paq-nvim', opt = true} + paq {'neovim/nvim-lspconfig'} +end + function llsp() local lspconfig = require('lspconfig') - lspconfig.gopls.setup{} + lspconfig.gopls.setup{on_attach=custom_attach} vim.lsp.set_log_level("debug") lsp_key_map() print("init lsp finished") - end function lcustom.init() vim.api.nvim_set_keymap('n','kk',' lua lcustom.echo()',{ noremap = true, silent = true }) vim.api.nvim_set_keymap('n','kl',' lua llsp()',{ noremap = true, silent = true }) - -- spc_key_bind('nore',{'k','k'}, 'test key bind', ':lua custom.echo()',1) + add_plugin() llsp() + g['deoplete#enable_at_startup'] = 1 -- enable deoplete at startup + -- spc_key_bind('nore',{'k','k'}, 'test key bind', ':lua custom.echo()',1) end function lsp_key_map() @@ -28,7 +39,46 @@ function simple_key_map(keys, cmd) vim.api.nvim_set_keymap('n',keys,cmd,{ noremap = true, silent = true }) end +local custom_attach = function(client) + print("LSP started."); + -- require'completion'.on_attach(client) + -- require'diagnostic'.on_attach(client) + map('n','gD','lua vim.lsp.buf.declaration()') + map('n','gd','lua vim.lsp.buf.definition()') + map('n','K','lua vim.lsp.buf.hover()') + map('n','gr','lua vim.lsp.buf.references()') + map('n','gs','lua vim.lsp.buf.signature_help()') + map('n','gi','lua vim.lsp.buf.implementation()') + map('n','gt','lua vim.lsp.buf.type_definition()') + map('n','gw','lua vim.lsp.buf.document_symbol()') + map('n','gW','lua vim.lsp.buf.workspace_symbol()') + map('n','ah','lua vim.lsp.buf.hover()') + map('n','af','lua vim.lsp.buf.code_action()') + map('n','ee','lua vim.lsp.util.show_line_diagnostics()') + map('n','ar','lua vim.lsp.buf.rename()') + map('n','=', 'lua vim.lsp.buf.formatting()') + map('n','ai','lua vim.lsp.buf.incoming_calls()') + map('n','ao','lua vim.lsp.buf.outgoing_calls()') +end + +local map = function(type, key, value) + vim.fn.nvim_buf_set_keymap(0,type,key,value,{noremap = true, silent = true}); +end + +function _G.dump(...) + local objects = vim.tbl_map(vim.inspect, {...}) + print(unpack(objects)) +end + + +local function RunIt(...) + if pcall(function(...) + string.format(...) + end) == false then + error("Function cannot format text",2) + end +end --[[ --// not work From ebe15b6b82aa4ea0b1460cf5b97587100872a88c Mon Sep 17 00:00:00 2001 From: Laily Date: Mon, 15 Mar 2021 18:53:08 +0800 Subject: [PATCH 16/26] fix(vim): add treesitter --- .SpaceVim.d/lua/custom.lua | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/.SpaceVim.d/lua/custom.lua b/.SpaceVim.d/lua/custom.lua index caf373f..cebbbfb 100644 --- a/.SpaceVim.d/lua/custom.lua +++ b/.SpaceVim.d/lua/custom.lua @@ -10,13 +10,15 @@ end function add_plugin() cmd 'packadd paq-nvim' local paq = require('paq-nvim').paq - paq {'savq/paq-nvim', opt = true} - paq {'neovim/nvim-lspconfig'} + paq{'savq/paq-nvim', opt = true} + paq{'neovim/nvim-lspconfig'} + paq{'nvim-treesitter/nvim-treesitter'} end function llsp() local lspconfig = require('lspconfig') lspconfig.gopls.setup{on_attach=custom_attach} + -- lspconfig.lua.setup{on_attach=custom_attach} vim.lsp.set_log_level("debug") lsp_key_map() print("init lsp finished") @@ -28,7 +30,21 @@ function lcustom.init() add_plugin() llsp() g['deoplete#enable_at_startup'] = 1 -- enable deoplete at startup - -- spc_key_bind('nore',{'k','k'}, 'test key bind', ':lua custom.echo()',1) + -- spc_key_bind('nore',{'g','d'}, 'test key bind', ':lua custom.echo()',1) + -- vim.api.nvim_command('autocmd VimEnter * nnoremap gd :lua vim.lsp.buf.definition()') + + treesitter() + print('init finished') +end + +function treesitter() + require'nvim-treesitter.configs'.setup { + ensure_installed = "maintained", -- one of "all", "maintained" (parsers with maintainers), or a list of languages + highlight = { + enable = true, -- false will disable the whole extension + disable = {}, -- list of language that will be disabled + }, + } end function lsp_key_map() @@ -63,6 +79,9 @@ local custom_attach = function(client) end local map = function(type, key, value) + -- autocmd VimEnter * nnoremap [ :tabprev + -- local cmd = [[vim.fn.nvim_buf_set_keymap(0,type,key,value,{noremap = true, silent = true})]] + -- vim.api.nvim_command('autocmd VimEnter * nnoremap '..key..' '..value) vim.fn.nvim_buf_set_keymap(0,type,key,value,{noremap = true, silent = true}); end From 7d928136bb5e91bc6d1618c3a2e6a7395d4d85b2 Mon Sep 17 00:00:00 2001 From: Laily Date: Mon, 15 Mar 2021 19:10:02 +0800 Subject: [PATCH 17/26] fix(vim): update key map --- .SpaceVim.d/autoload/myspacevim.vim | 8 +++++++- .SpaceVim.d/init.toml | 3 ++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/.SpaceVim.d/autoload/myspacevim.vim b/.SpaceVim.d/autoload/myspacevim.vim index 0afa4bb..c4aad80 100644 --- a/.SpaceVim.d/autoload/myspacevim.vim +++ b/.SpaceVim.d/autoload/myspacevim.vim @@ -1,9 +1,13 @@ +function! myspacevim#before() abort + autocmd VimEnter * nnoremap gd :lua vim.lsp.buf.definition() +endfunction + lua << EOF local c = require('custom') lcustom.init() EOF -function! myspacevim#before() abort +function! myspacevim#after() abort set wrap "设置折叠方式 set foldmethod=indent @@ -21,3 +25,5 @@ function! myspacevim#before() abort "等号左右空格 "inoremap = = endfunction + + diff --git a/.SpaceVim.d/init.toml b/.SpaceVim.d/init.toml index 94288cd..e7630cd 100755 --- a/.SpaceVim.d/init.toml +++ b/.SpaceVim.d/init.toml @@ -26,7 +26,8 @@ enable_statusline_display_mode = false vim_help_language = "cn" default_indent = 4 - bootstrap_after= "myspacevim#before" + bootstrap_before= "myspacevim#before" + bootstrap_after= "myspacevim#after" # Enable autocomplete layer #[[layers]] From 12bed8d697ea06b52e29c4f90aabf0ed8395db10 Mon Sep 17 00:00:00 2001 From: Laily Date: Mon, 15 Mar 2021 21:13:26 +0800 Subject: [PATCH 18/26] fix(vim): set complete --- .SpaceVim.d/autoload/myspacevim.vim | 1 + .SpaceVim.d/init.toml | 8 +++++++- .SpaceVim.d/lua/custom.lua | 11 ++++++++--- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/.SpaceVim.d/autoload/myspacevim.vim b/.SpaceVim.d/autoload/myspacevim.vim index c4aad80..d3994df 100644 --- a/.SpaceVim.d/autoload/myspacevim.vim +++ b/.SpaceVim.d/autoload/myspacevim.vim @@ -1,5 +1,6 @@ function! myspacevim#before() abort autocmd VimEnter * nnoremap gd :lua vim.lsp.buf.definition() + call deoplete#custom#option('auto_complete', v:false) endfunction lua << EOF diff --git a/.SpaceVim.d/init.toml b/.SpaceVim.d/init.toml index e7630cd..20c0b39 100755 --- a/.SpaceVim.d/init.toml +++ b/.SpaceVim.d/init.toml @@ -11,6 +11,7 @@ # set spacevim theme. by default colorscheme layer is not loaded, # if you want to use more colorscheme, please load the colorscheme # layer + auto_complete = false colorscheme = "NeoSolarized" background = "dark" # Disable guicolors in basic mode, many terminal do not support 24bit @@ -21,13 +22,14 @@ statusline_separator = "arrow" statusline_inactive_separator = "arrow" buffer_index_type = 4 - autocomplete_method = 'deoplete' + #autocomplete_method = 'deoplete' enable_tabline_filetype_icon = true enable_statusline_display_mode = false vim_help_language = "cn" default_indent = 4 bootstrap_before= "myspacevim#before" bootstrap_after= "myspacevim#after" + disabled_plugins = ["auto_complete"] # Enable autocomplete layer #[[layers]] @@ -76,6 +78,10 @@ name = "VersionControl" [[layers]] name = "tmux" +[[layers]] +name = 'autocomplete' +enable = false + [[custom_plugins]] name = "terryma/vim-multiple-cursors" diff --git a/.SpaceVim.d/lua/custom.lua b/.SpaceVim.d/lua/custom.lua index cebbbfb..002b45a 100644 --- a/.SpaceVim.d/lua/custom.lua +++ b/.SpaceVim.d/lua/custom.lua @@ -13,6 +13,7 @@ function add_plugin() paq{'savq/paq-nvim', opt = true} paq{'neovim/nvim-lspconfig'} paq{'nvim-treesitter/nvim-treesitter'} + paq{'nvim-lua/completion-nvim'} end function llsp() @@ -29,9 +30,13 @@ function lcustom.init() vim.api.nvim_set_keymap('n','kl',' lua llsp()',{ noremap = true, silent = true }) add_plugin() llsp() - g['deoplete#enable_at_startup'] = 1 -- enable deoplete at startup + -- g['deoplete#enable_at_startup'] = 1 -- enable deoplete at startup -- spc_key_bind('nore',{'g','d'}, 'test key bind', ':lua custom.echo()',1) -- vim.api.nvim_command('autocmd VimEnter * nnoremap gd :lua vim.lsp.buf.definition()') + print('init llsp') + -- vim.api.nvim_buf_set_option(0, 'omnifunc', 'v:lua.vim.lsp.omnifunc') + -- + vim.o['completeopt']='menuone,noinsert,noselect' treesitter() print('init finished') @@ -55,9 +60,9 @@ function simple_key_map(keys, cmd) vim.api.nvim_set_keymap('n',keys,cmd,{ noremap = true, silent = true }) end -local custom_attach = function(client) +custom_attach = function(client, bufnr) print("LSP started."); - -- require'completion'.on_attach(client) + require'completion'.on_attach(client, bufnr) -- require'diagnostic'.on_attach(client) map('n','gD','lua vim.lsp.buf.declaration()') From fe0aab84af1c9283d735f2536899ccb6a666b56b Mon Sep 17 00:00:00 2001 From: Laily Date: Mon, 15 Mar 2021 21:32:06 +0800 Subject: [PATCH 19/26] fix(vim): vim.api --- .SpaceVim.d/init.toml | 1 + .SpaceVim.d/lua/custom.lua | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.SpaceVim.d/init.toml b/.SpaceVim.d/init.toml index 20c0b39..2e5394b 100755 --- a/.SpaceVim.d/init.toml +++ b/.SpaceVim.d/init.toml @@ -30,6 +30,7 @@ bootstrap_before= "myspacevim#before" bootstrap_after= "myspacevim#after" disabled_plugins = ["auto_complete"] + enable_neomake = false # Enable autocomplete layer #[[layers]] diff --git a/.SpaceVim.d/lua/custom.lua b/.SpaceVim.d/lua/custom.lua index 002b45a..036a248 100644 --- a/.SpaceVim.d/lua/custom.lua +++ b/.SpaceVim.d/lua/custom.lua @@ -1,6 +1,6 @@ lcustom = {} local cmd = vim.cmd -- to execute Vim commands e.g. cmd('pwd') -local fn = vim.fn -- to call Vim functions e.g. fn.bufnr() +local fn = vim.api -- to call Vim functions e.g. fn.bufnr() local g = vim.g -- a table to access global variables function lcustom.echo() @@ -83,11 +83,11 @@ custom_attach = function(client, bufnr) map('n','ao','lua vim.lsp.buf.outgoing_calls()') end -local map = function(type, key, value) +map = function(type, key, value) -- autocmd VimEnter * nnoremap [ :tabprev -- local cmd = [[vim.fn.nvim_buf_set_keymap(0,type,key,value,{noremap = true, silent = true})]] -- vim.api.nvim_command('autocmd VimEnter * nnoremap '..key..' '..value) - vim.fn.nvim_buf_set_keymap(0,type,key,value,{noremap = true, silent = true}); + vim.api.nvim_buf_set_keymap(0,type,key,value,{noremap = true, silent = true}); end function _G.dump(...) From 508529e4ce13f6e0ac8131a3f3e35e3ce575e770 Mon Sep 17 00:00:00 2001 From: Laily Date: Thu, 18 Mar 2021 09:31:41 +0800 Subject: [PATCH 20/26] feat(nvim): new vim config --- nvim/init.lua | 63 ++++++++++ nvim/lua/bufferline/lua.lua | 54 +++++++++ nvim/lua/gitsigns/lua.lua | 27 +++++ nvim/lua/mappings/lua.lua | 14 +++ nvim/lua/nvim-compe/lua.lua | 62 ++++++++++ nvim/lua/nvim-lspconfig/lua.lua | 32 +++++ nvim/lua/nvimTree/lua.lua | 85 +++++++++++++ nvim/lua/pluginsList/lua.lua | 30 +++++ nvim/lua/statusline/lua.lua | 204 ++++++++++++++++++++++++++++++++ nvim/lua/telescope-nvim/lua.lua | 76 ++++++++++++ nvim/lua/treesitter/lua.lua | 18 +++ nvim/lua/utils/lua.lua | 43 +++++++ nvim/lua/web-devicons/lua.lua | 71 +++++++++++ 13 files changed, 779 insertions(+) create mode 100644 nvim/init.lua create mode 100644 nvim/lua/bufferline/lua.lua create mode 100644 nvim/lua/gitsigns/lua.lua create mode 100644 nvim/lua/mappings/lua.lua create mode 100644 nvim/lua/nvim-compe/lua.lua create mode 100644 nvim/lua/nvim-lspconfig/lua.lua create mode 100644 nvim/lua/nvimTree/lua.lua create mode 100644 nvim/lua/pluginsList/lua.lua create mode 100644 nvim/lua/statusline/lua.lua create mode 100644 nvim/lua/telescope-nvim/lua.lua create mode 100644 nvim/lua/treesitter/lua.lua create mode 100644 nvim/lua/utils/lua.lua create mode 100644 nvim/lua/web-devicons/lua.lua diff --git a/nvim/init.lua b/nvim/init.lua new file mode 100644 index 0000000..c5251b9 --- /dev/null +++ b/nvim/init.lua @@ -0,0 +1,63 @@ +-- load plugins +require("pluginsList.lua") +require("web-devicons.lua") + +require("utils.lua") +require("nvimTree.lua") +require("bufferline.lua") +require("statusline.lua") +require("telescope-nvim.lua") + +-- lsp +require("nvim-lspconfig.lua") +require("nvim-compe.lua") + +require("gitsigns.lua") + +require "colorizer".setup() + +local cmd = vim.cmd +local g = vim.g +local indent = 4 + +cmd "colorscheme base16-onedark" +cmd "syntax enable" +cmd "syntax on" +cmd "set tabstop=4" + +g.auto_save = 1 +g.indentLine_enabled = 1 +g.indentLine_char_list = {'▏'} + +g.mapleader = " " + +require("treesitter.lua") +require("mappings.lua") + +-- highlights +cmd("hi LineNr guibg=NONE") +cmd("hi SignColumn guibg=NONE") +cmd("hi VertSplit guibg=NONE") +cmd("hi DiffAdd guifg=#81A1C1 guibg = none") +cmd("hi DiffChange guifg =#3A3E44 guibg = none") +cmd("hi DiffModified guifg = #81A1C1 guibg = none") +cmd("hi EndOfBuffer guifg=#282c34") + +cmd("hi TelescopeBorder guifg=#3e4451") +cmd("hi TelescopePromptBorder guifg=#3e4451") +cmd("hi TelescopeResultsBorder guifg=#3e4451") +cmd("hi TelescopePreviewBorder guifg=#525865") +cmd("hi PmenuSel guibg=#98c379") + +-- tree folder name , icon color +cmd("hi NvimTreeFolderIcon guifg = #61afef") +cmd("hi NvimTreeFolderName guifg = #61afef") +cmd("hi NvimTreeIndentMarker guifg=#545862") + +require("nvim-autopairs").setup() + +require("lspkind").init( + { + File = " " + } +) diff --git a/nvim/lua/bufferline/lua.lua b/nvim/lua/bufferline/lua.lua new file mode 100644 index 0000000..3f090a1 --- /dev/null +++ b/nvim/lua/bufferline/lua.lua @@ -0,0 +1,54 @@ +vim.o.termguicolors = true + +-- colors for active , inactive buffer tabs +require "bufferline".setup { + options = { + buffer_close_icon = "", + modified_icon = "●", + close_icon = "", + left_trunc_marker = "", + right_trunc_marker = "", + max_name_length = 14, + max_prefix_length = 13, + tab_size = 18, + enforce_regular_tabs = true, + view = "multiwindow", + show_buffer_close_icons = true, + separator_style = "thin" + }, + highlights = { + background = { + guifg = comment_fg, + guibg = "#282c34" + }, + fill = { + guifg = comment_fg, + guibg = "#282c34" + }, + buffer_selected = { + guifg = normal_fg, + guibg = "#3A3E44", + gui = "bold" + }, + separator_visible = { + guifg = "#282c34", + guibg = "#282c34" + }, + separator_selected = { + guifg = "#282c34", + guibg = "#282c34" + }, + separator = { + guifg = "#282c34", + guibg = "#282c34" + }, + indicator_selected = { + guifg = "#282c34", + guibg = "#282c34" + }, + modified_selected = { + guifg = string_fg, + guibg = "#3A3E44" + } + } +} diff --git a/nvim/lua/gitsigns/lua.lua b/nvim/lua/gitsigns/lua.lua new file mode 100644 index 0000000..ddba7ef --- /dev/null +++ b/nvim/lua/gitsigns/lua.lua @@ -0,0 +1,27 @@ +require("gitsigns").setup { + signs = { + add = {hl = "DiffAdd", text = "▌", numhl = "GitSignsAddNr"}, + change = {hl = "DiffChange", text = "▌", numhl = "GitSignsChangeNr"}, + delete = {hl = "DiffDelete", text = "_", numhl = "GitSignsDeleteNr"}, + topdelete = {hl = "DiffDelete", text = "‾", numhl = "GitSignsDeleteNr"}, + changedelete = {hl = "DiffChange", text = "~", numhl = "GitSignsChangeNr"} + }, + numhl = false, + keymaps = { + -- Default keymap options + noremap = true, + buffer = true, + ["n ]c"] = {expr = true, '&diff ? \']c\' : \'lua require"gitsigns".next_hunk()\''}, + ["n [c"] = {expr = true, '&diff ? \'[c\' : \'lua require"gitsigns".prev_hunk()\''}, + ["n gs"] = 'lua require"gitsigns".stage_hunk()', + ["n gu"] = 'lua require"gitsigns".undo_stage_hunk()', + ["n gr"] = 'lua require"gitsigns".reset_hunk()', + ["n gp"] = 'lua require"gitsigns".preview_hunk()', + ["n gb"] = 'lua require"gitsigns".blame_line()' + }, + watch_index = { + interval = 100 + }, + sign_priority = 5, + status_formatter = nil -- Use default +} diff --git a/nvim/lua/mappings/lua.lua b/nvim/lua/mappings/lua.lua new file mode 100644 index 0000000..da92370 --- /dev/null +++ b/nvim/lua/mappings/lua.lua @@ -0,0 +1,14 @@ +local function map(mode, lhs, rhs, opts) + local options = {noremap = true} + if opts then + options = vim.tbl_extend("force", options, opts) + end + vim.api.nvim_set_keymap(mode, lhs, rhs, options) +end + +-- keybind list +map("", "c", '"+y') + +-- open terminals +map("n", "" , [[ vnew term://bash]] , opt) -- split term vertically , over the right +map("n", "" , [[ split term://bash | resize 10 ]] , opt) -- split term vertically , over the right diff --git a/nvim/lua/nvim-compe/lua.lua b/nvim/lua/nvim-compe/lua.lua new file mode 100644 index 0000000..79bdc8a --- /dev/null +++ b/nvim/lua/nvim-compe/lua.lua @@ -0,0 +1,62 @@ +vim.cmd [[packadd nvim-lspconfig]] +vim.cmd [[packadd nvim-compe]] + +vim.o.completeopt = "menuone,noselect" + +require "compe".setup { + enabled = true, + autocomplete = true, + debug = false, + min_length = 1, + preselect = "enable", + throttle_time = 80, + source_timeout = 200, + incomplete_delay = 400, + max_abbr_width = 100, + max_kind_width = 100, + max_menu_width = 100, + documentation = false, + source = { + path = true, + buffer = true, + calc = true, + vsnip = true, + nvim_lsp = true, + nvim_lua = true, + spell = true, + tags = true, + snippets_nvim = true, + treesitter = true + } +} + +local t = function(str) + return vim.api.nvim_replace_termcodes(str, true, true, true) +end +_G.s_tab_complete = function() + if vim.fn.pumvisible() == 1 then + return t "" + elseif vim.fn.call("vsnip#jumpable", {-1}) == 1 then + return t "(vsnip-jump-prev)" + else + return t "" + end +end + +-- mappings + +vim.api.nvim_set_keymap("s", "", "v:lua.tab_complete()", {expr = true}) +vim.api.nvim_set_keymap("i", "", "v:lua.s_tab_complete()", {expr = true}) +vim.api.nvim_set_keymap("s", "", "v:lua.s_tab_complete()", {expr = true}) + +function _G.completions() + local npairs = require("nvim-autopairs") + if vim.fn.pumvisible() == 1 then + if vim.fn.complete_info()["selected"] ~= -1 then + return vim.fn["compe#confirm"]("") + end + end + return npairs.check_break_line_char() +end + +vim.api.nvim_set_keymap("i", "", "v:lua.completions()", {expr = true}) diff --git a/nvim/lua/nvim-lspconfig/lua.lua b/nvim/lua/nvim-lspconfig/lua.lua new file mode 100644 index 0000000..4a5ec17 --- /dev/null +++ b/nvim/lua/nvim-lspconfig/lua.lua @@ -0,0 +1,32 @@ +vim.cmd [[packadd nvim-lspconfig]] +vim.cmd [[packadd nvim-compe]] + +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 + +buf_set_option("omnifunc", "v:lua.vim.lsp.omnifunc") + +-- Mappings. +local opts = {noremap = true, silent = true} +buf_set_keymap("n", "gD", "lua vim.lsp.buf.declaration()", opts) +buf_set_keymap("n", "gd", "lua vim.lsp.buf.definition()", opts) +buf_set_keymap("n", "K", "lua vim.lsp.buf.hover()", opts) +buf_set_keymap("n", "gi", "lua vim.lsp.buf.implementation()", opts) +buf_set_keymap("n", "", "lua vim.lsp.buf.signature_help()", opts) +buf_set_keymap("n", "wa", "lua vim.lsp.buf.add_workspace_folder()", opts) +buf_set_keymap("n", "wr", "lua vim.lsp.buf.remove_workspace_folder()", opts) +buf_set_keymap("n", "wl", "lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))", opts) +buf_set_keymap("n", "D", "lua vim.lsp.buf.type_definition()", opts) +buf_set_keymap("n", "rn", "lua vim.lsp.buf.rename()", opts) +buf_set_keymap("n", "gr", "lua vim.lsp.buf.references()", opts) +buf_set_keymap("n", "e", "lua vim.lsp.diagnostic.show_line_diagnostics()", opts) +buf_set_keymap("n", "[d", "lua vim.lsp.diagnostic.goto_prev()", opts) +buf_set_keymap("n", "]d", "lua vim.lsp.diagnostic.goto_next()", opts) +buf_set_keymap("n", "q", "lua vim.lsp.diagnostic.set_loclist()", opts) + +-- lsp for html , css and js/ts +require "lspconfig".gopls.setup {} diff --git a/nvim/lua/nvimTree/lua.lua b/nvim/lua/nvimTree/lua.lua new file mode 100644 index 0000000..65fef75 --- /dev/null +++ b/nvim/lua/nvimTree/lua.lua @@ -0,0 +1,85 @@ +vim.cmd [[packadd nvim-tree.lua]] + +vim.o.termguicolors = true + +vim.g.nvim_tree_side = "left" +vim.g.nvim_tree_width = 24 +vim.g.nvim_tree_ignore = {".git", "node_modules", ".cache"} +vim.g.nvim_tree_auto_open = 1 +vim.g.nvim_tree_auto_close = 1 +vim.g.nvim_tree_quit_on_open = 0 +vim.g.nvim_tree_follow = 1 +vim.g.nvim_tree_indent_markers = 1 +vim.g.nvim_tree_hide_dotfiles = 1 +vim.g.nvim_tree_git_hl = 1 +vim.g.nvim_tree_root_folder_modifier = ":~" +vim.g.nvim_tree_tab_open = 1 +vim.g.nvim_tree_allow_resize = 1 + +vim.g.nvim_tree_show_icons = { + git = 1, + folders = 1, + files = 1 +} + +vim.g.nvim_tree_icons = { + default = " ", + symlink = " ", + git = { + unstaged = "✗", + staged = "✓", + unmerged = "", + renamed = "➜", + untracked = "★" + }, + folder = { + default = "", + open = "", + symlink = "" + } +} + +local get_lua_cb = function(cb_name) + return string.format(":lua require'nvim-tree'.on_keypress('%s')", cb_name) +end + +-- Mappings for nvimtree + +vim.api.nvim_set_keymap( + "n", + "", + ":NvimTreeToggle", + { + noremap = true, + silent = true + } +) + +vim.g.nvim_tree_bindings = { + [""] = get_lua_cb("edit"), + ["l"] = get_lua_cb("edit"), + ["o"] = get_lua_cb("edit"), + ["<2-LeftMouse>"] = get_lua_cb("edit"), + ["<2-RightMouse>"] = get_lua_cb("cd"), + [""] = get_lua_cb("cd"), + [""] = get_lua_cb("vsplit"), + [""] = get_lua_cb("split"), + [""] = get_lua_cb("tabnew"), + [""] = get_lua_cb("close_node"), + [""] = get_lua_cb("close_node"), + [""] = get_lua_cb("preview"), + ["I"] = get_lua_cb("toggle_ignored"), + ["H"] = get_lua_cb("toggle_dotfiles"), + ["R"] = get_lua_cb("refresh"), + ["n"] = get_lua_cb("create"), + ["d"] = get_lua_cb("remove"), + ["r"] = get_lua_cb("rename"), + [""] = get_lua_cb("full_rename"), + ["x"] = get_lua_cb("cut"), + ["c"] = get_lua_cb("copy"), + ["p"] = get_lua_cb("paste"), + ["[c"] = get_lua_cb("prev_git_item"), + ["]c"] = get_lua_cb("next_git_item"), + ["-"] = get_lua_cb("dir_up"), + ["q"] = get_lua_cb("close") +} diff --git a/nvim/lua/pluginsList/lua.lua b/nvim/lua/pluginsList/lua.lua new file mode 100644 index 0000000..1e3daa3 --- /dev/null +++ b/nvim/lua/pluginsList/lua.lua @@ -0,0 +1,30 @@ +-- check if packer is installed (~/local/share/nvim/site/pack) +local packer_exists = pcall(vim.cmd, [[packadd packer.nvim]]) + +return require("packer").startup( + function() + use {"wbthomason/packer.nvim", opt = true} + use {"kyazdani42/nvim-web-devicons"} + use {"kyazdani42/nvim-tree.lua"} + use {"nvim-lua/plenary.nvim"} + use {"lewis6991/gitsigns.nvim"} + use {"glepnir/galaxyline.nvim"} + use {"akinsho/nvim-bufferline.lua"} + use {"907th/vim-auto-save"} + use {"nvim-treesitter/nvim-treesitter"} + use {"chriskempson/base16-vim"} + use {"norcalli/nvim-colorizer.lua"} + use { 'Yggdroot/indentLine'} + use {"ryanoasis/vim-devicons"} + use {"sbdchd/neoformat"} + use {"neovim/nvim-lspconfig"} + use {"hrsh7th/nvim-compe"} + use {"windwp/nvim-autopairs"} + use {"alvan/vim-closetag"} + use {"tweekmonster/startuptime.vim"} + use {"onsails/lspkind-nvim"} + use {"nvim-telescope/telescope.nvim"} + use {"nvim-telescope/telescope-media-files.nvim"} + use {"nvim-lua/popup.nvim"} + end +) diff --git a/nvim/lua/statusline/lua.lua b/nvim/lua/statusline/lua.lua new file mode 100644 index 0000000..fe0aff8 --- /dev/null +++ b/nvim/lua/statusline/lua.lua @@ -0,0 +1,204 @@ +local gl = require("galaxyline") +local gls = gl.section +gl.short_line_list = {"LuaTree", "vista", "dbui"} + +local colors = { + bg = "#282c34", + line_bg = "#282c34", + fg = "#D8DEE9", + fg_green = "#65a380", + yellow = "#A3BE8C", + cyan = "#22262C", + darkblue = "#61afef", + green = "#BBE67E", + orange = "#FF8800", + purple = "#252930", + magenta = "#c678dd", + blue = "#22262C", + red = "#DF8890", + lightbg = "#3C4048", + nord = "#81A1C1", + greenYel = "#EBCB8B" +} + +gls.left[1] = { + leftRounded = { + provider = function() + return "" + end, + highlight = {colors.nord, colors.bg} + } +} + +gls.left[2] = { + ViMode = { + provider = function() + return "  " + end, + highlight = {colors.bg, colors.nord}, + separator = " ", + separator_highlight = {colors.lightbg, colors.lightbg} + } +} + +gls.left[3] = { + FileIcon = { + provider = "FileIcon", + condition = buffer_not_empty, + highlight = {require("galaxyline.provider_fileinfo").get_file_icon_color, colors.lightbg} + } +} + +gls.left[4] = { + FileName = { + provider = {"FileName", "FileSize"}, + condition = buffer_not_empty, + highlight = {colors.fg, colors.lightbg} + } +} + +gls.left[5] = { + teech = { + provider = function() + return "" + end, + separator = " ", + highlight = {colors.lightbg, colors.bg} + } +} + +local checkwidth = function() + local squeeze_width = vim.fn.winwidth(0) / 2 + if squeeze_width > 40 then + return true + end + return false +end + +gls.left[6] = { + DiffAdd = { + provider = "DiffAdd", + condition = checkwidth, + icon = "  ", + highlight = {colors.greenYel, colors.line_bg} + } +} + +gls.left[7] = { + DiffModified = { + provider = "DiffModified", + condition = checkwidth, + icon = " ", + highlight = {colors.orange, colors.line_bg} + } +} + +gls.left[8] = { + DiffRemove = { + provider = "DiffRemove", + condition = checkwidth, + icon = " ", + highlight = {colors.red, colors.line_bg} + } +} + +gls.left[9] = { + LeftEnd = { + provider = function() + return " " + end, + separator = " ", + separator_highlight = {colors.line_bg, colors.line_bg}, + highlight = {colors.line_bg, colors.line_bg} + } +} + +gls.left[10] = { + DiagnosticError = { + provider = "DiagnosticError", + icon = "  ", + highlight = {colors.red, colors.bg} + } +} + +gls.left[11] = { + Space = { + provider = function() + return " " + end, + highlight = {colors.line_bg, colors.line_bg} + } +} + +gls.left[12] = { + DiagnosticWarn = { + provider = "DiagnosticWarn", + icon = "  ", + highlight = {colors.blue, colors.bg} + } +} + +gls.right[1] = { + GitIcon = { + provider = function() + return "  " + end, + condition = require("galaxyline.provider_vcs").check_git_workspace, + highlight = {colors.green, colors.line_bg} + } +} + +gls.right[2] = { + GitBranch = { + provider = "GitBranch", + condition = require("galaxyline.provider_vcs").check_git_workspace, + highlight = {colors.green, colors.line_bg} + } +} + +gls.right[3] = { + right_LeftRounded = { + provider = function() + return "" + end, + separator = " ", + separator_highlight = {colors.bg, colors.bg}, + highlight = {colors.red, colors.bg} + } +} + +gls.right[4] = { + SiMode = { + provider = function() + local alias = { + n = "NORMAL", + i = "INSERT", + c = "COMMAND", + V = "VISUAL", + [""] = "VISUAL", + v = "VISUAL", + R = "REPLACE" + } + return alias[vim.fn.mode()] + end, + highlight = {colors.bg, colors.red} + } +} + +gls.right[5] = { + PerCent = { + provider = "LinePercent", + separator = " ", + separator_highlight = {colors.red, colors.red}, + highlight = {colors.bg, colors.fg} + } +} + +gls.right[6] = { + rightRounded = { + provider = function() + return "" + end, + highlight = {colors.fg, colors.bg} + } +} diff --git a/nvim/lua/telescope-nvim/lua.lua b/nvim/lua/telescope-nvim/lua.lua new file mode 100644 index 0000000..00f6ae3 --- /dev/null +++ b/nvim/lua/telescope-nvim/lua.lua @@ -0,0 +1,76 @@ +require("telescope").setup { + defaults = { + vimgrep_arguments = { + "rg", + "--color=never", + "--no-heading", + "--with-filename", + "--line-number", + "--column", + "--smart-case" + }, + prompt_position = "bottom", + prompt_prefix = "> ", + selection_caret = "> ", + entry_prefix = " ", + initial_mode = "insert", + selection_strategy = "reset", + sorting_strategy = "descending", + layout_strategy = "horizontal", + layout_defaults = { + horizontal = { + mirror = false, + preview_width = 0.5 + }, + vertical = { + mirror = false + } + }, + file_sorter = require "telescope.sorters".get_fuzzy_file, + file_ignore_patterns = {}, + generic_sorter = require "telescope.sorters".get_generic_fuzzy_sorter, + shorten_path = true, + winblend = 0, + width = 0.75, + preview_cutoff = 120, + results_height = 1, + results_width = 0.8, + border = {}, + borderchars = {"─", "│", "─", "│", "╭", "╮", "╯", "╰"}, + color_devicons = true, + use_less = true, + set_env = {["COLORTERM"] = "truecolor"}, -- default = nil, + file_previewer = require "telescope.previewers".vim_buffer_cat.new, + grep_previewer = require "telescope.previewers".vim_buffer_vimgrep.new, + qflist_previewer = require "telescope.previewers".vim_buffer_qflist.new, + -- Developer configurations: Not meant for general override + buffer_previewer_maker = require "telescope.previewers".buffer_previewer_maker + }, + extensions = { + media_files = { + filetypes = {"png", "webp", "jpg", "jpeg"}, + find_cmd = "rg" -- find command (defaults to `fd`) + } + } +} + +require("telescope").load_extension("media_files") + +local opt = {noremap = true, silent = true} + +vim.g.mapleader = " " + +-- mappings +vim.api.nvim_set_keymap("n", "ff", [[lua require('telescope.builtin').find_files()]], opt) +vim.api.nvim_set_keymap( + "n", + "fp", + [[lua require('telescope').extensions.media_files.media_files()]], + opt +) +vim.api.nvim_set_keymap("n", "fb", [[lua require('telescope.builtin').buffers()]], opt) +vim.api.nvim_set_keymap("n", "fh", [[lua require('telescope.builtin').help_tags()]], opt) +vim.api.nvim_set_keymap("n", "fo", [[lua require('telescope.builtin').oldfiles()]], opt) +vim.api.nvim_set_keymap("n", "fm", [[ Neoformat]], opt) + +vim.api.nvim_set_keymap("n", "", [[ %y+]], opt) diff --git a/nvim/lua/treesitter/lua.lua b/nvim/lua/treesitter/lua.lua new file mode 100644 index 0000000..37f2c7e --- /dev/null +++ b/nvim/lua/treesitter/lua.lua @@ -0,0 +1,18 @@ +local ts_config = require("nvim-treesitter.configs") + +ts_config.setup { + ensure_installed = { + "javascript", + "html", + "css", + "bash", + "cpp", + "rust", + "lua", + "go", + }, + highlight = { + enable = true, + use_languagetree = true + } +} diff --git a/nvim/lua/utils/lua.lua b/nvim/lua/utils/lua.lua new file mode 100644 index 0000000..9286b5f --- /dev/null +++ b/nvim/lua/utils/lua.lua @@ -0,0 +1,43 @@ +local scopes = {o = vim.o, b = vim.bo, w = vim.wo} + +local function opt(scope, key, value) + scopes[scope][key] = value + if scope ~= "o" then + scopes["o"][key] = value + end +end + +opt("o", "hidden", true) +opt("o", "ignorecase", true) +opt("o", "splitbelow", true) +opt("o", "splitright", true) +opt("o", "termguicolors", true) +opt("w", "number", true) +opt("o", "numberwidth", 2) + +opt("o", "mouse", "a") + +opt("w", "signcolumn", "yes") +opt("o", "cmdheight", 1) + +opt("o", "updatetime", 250) -- update interval for gitsigns +opt("o", "clipboard", "unnamedplus") + +-- for indenline +opt("b", "expandtab", true ) +opt("b", "shiftwidth", 2 ) + + +local M = {} + +function M.is_buffer_empty() + -- Check whether the current buffer is empty + return vim.fn.empty(vim.fn.expand("%:t")) == 1 +end + +function M.has_width_gt(cols) + -- Check if the windows width is greater than a given number of columns + return vim.fn.winwidth(0) / 2 > cols +end + +return M diff --git a/nvim/lua/web-devicons/lua.lua b/nvim/lua/web-devicons/lua.lua new file mode 100644 index 0000000..5071e2e --- /dev/null +++ b/nvim/lua/web-devicons/lua.lua @@ -0,0 +1,71 @@ +vim.cmd [[packadd nvim-web-devicons]] + +require "nvim-web-devicons".setup { + override = { + html = { + icon = "", + color = "#DE8C92", + name = "html" + }, + css = { + icon = "", + color = "#61afef", + name = "css" + }, + js = { + icon = "", + color = "#EBCB8B", + name = "js" + }, + png = { + icon = " ", + color = "#BD77DC", + name = "png" + }, + jpg = { + icon = " ", + color = "#BD77DC", + name = "jpg" + }, + jpeg = { + icon = " ", + color = "#BD77DC", + name = "jpeg" + }, + mp3 = { + icon = "", + color = "#C8CCD4", + name = "mp3" + }, + mp4 = { + icon = "", + color = "#C8CCD4", + name = "mp4" + }, + out = { + icon = "", + color = "#C8CCD4", + name = "out" + }, + toml = { + icon = "", + color = "#61afef", + name = "toml" + }, + lock = { + icon = "", + color = "#DE6B74", + name = "lock" + }, + zip = { + icon = "", + color = "#EBCB8B", + name = "zip" + }, + xz = { + icon = "", + color = "#EBCB8B", + name = "xz" + } + } +} From 68c15456306bf0f8aabf85942f12566c08d2de08 Mon Sep 17 00:00:00 2001 From: Laily Date: Thu, 18 Mar 2021 14:09:03 +0800 Subject: [PATCH 21/26] fix(nvim): key mapping --- nvim/lua/mappings/lua.lua | 15 +++++++++++++++ nvim/lua/pluginsList/lua.lua | 2 +- nvim/lua/telescope-nvim/lua.lua | 1 + nvim/lua/utils/lua.lua | 6 +++++- 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/nvim/lua/mappings/lua.lua b/nvim/lua/mappings/lua.lua index da92370..f30573e 100644 --- a/nvim/lua/mappings/lua.lua +++ b/nvim/lua/mappings/lua.lua @@ -12,3 +12,18 @@ map("", "c", '"+y') -- open terminals map("n", "" , [[ vnew term://bash]] , opt) -- split term vertically , over the right map("n", "" , [[ split term://bash | resize 10 ]] , opt) -- split term vertically , over the right +-- file +map("n","fs",[[ w]]) + +-- buffer +map("n", "bn",[[ bnext]]) +map("n", "bp",[[ bprev]]) +map("n", "bd",[[ w\|bd]]) + +-- search +map("n","sc",[[ nohlsearch]]) + +-- vim self +map("n","qq",[[ qa]]) +map("n","qr",[[ luafile $MYVIMRC]]) + diff --git a/nvim/lua/pluginsList/lua.lua b/nvim/lua/pluginsList/lua.lua index 1e3daa3..3241c10 100644 --- a/nvim/lua/pluginsList/lua.lua +++ b/nvim/lua/pluginsList/lua.lua @@ -14,7 +14,7 @@ return require("packer").startup( use {"nvim-treesitter/nvim-treesitter"} use {"chriskempson/base16-vim"} use {"norcalli/nvim-colorizer.lua"} - use { 'Yggdroot/indentLine'} + use {"Yggdroot/indentLine"} use {"ryanoasis/vim-devicons"} use {"sbdchd/neoformat"} use {"neovim/nvim-lspconfig"} diff --git a/nvim/lua/telescope-nvim/lua.lua b/nvim/lua/telescope-nvim/lua.lua index 00f6ae3..ead40c0 100644 --- a/nvim/lua/telescope-nvim/lua.lua +++ b/nvim/lua/telescope-nvim/lua.lua @@ -62,6 +62,7 @@ vim.g.mapleader = " " -- mappings vim.api.nvim_set_keymap("n", "ff", [[lua require('telescope.builtin').find_files()]], opt) +vim.api.nvim_set_keymap("n", "", [[lua require('telescope.builtin').find_files()]], opt) vim.api.nvim_set_keymap( "n", "fp", diff --git a/nvim/lua/utils/lua.lua b/nvim/lua/utils/lua.lua index 9286b5f..c442dee 100644 --- a/nvim/lua/utils/lua.lua +++ b/nvim/lua/utils/lua.lua @@ -24,8 +24,12 @@ opt("o", "updatetime", 250) -- update interval for gitsigns opt("o", "clipboard", "unnamedplus") -- for indenline +local indent = 4 opt("b", "expandtab", true ) -opt("b", "shiftwidth", 2 ) +opt("b", "shiftwidth", indent ) +opt('b', 'tabstop', indent) -- Number of spaces tabs count for +opt('o', 'completeopt', 'menuone,noinsert,noselect') -- Completion options (for deoplete) + local M = {} From ae17189a67bf9ae1f2cb9210efcc820493e29e04 Mon Sep 17 00:00:00 2001 From: Laily Date: Thu, 18 Mar 2021 14:21:14 +0800 Subject: [PATCH 22/26] fix(nvim): key mapping --- nvim/init.lua | 1 - nvim/lua/mappings/lua.lua | 6 ++++++ nvim/lua/nvim-lspconfig/lua.lua | 2 +- nvim/lua/nvimTree/lua.lua | 1 + 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/nvim/init.lua b/nvim/init.lua index c5251b9..d8c38d2 100644 --- a/nvim/init.lua +++ b/nvim/init.lua @@ -18,7 +18,6 @@ require "colorizer".setup() local cmd = vim.cmd local g = vim.g -local indent = 4 cmd "colorscheme base16-onedark" cmd "syntax enable" diff --git a/nvim/lua/mappings/lua.lua b/nvim/lua/mappings/lua.lua index f30573e..5afa831 100644 --- a/nvim/lua/mappings/lua.lua +++ b/nvim/lua/mappings/lua.lua @@ -20,6 +20,12 @@ map("n", "bn",[[ bnext]]) map("n", "bp",[[ bprev]]) map("n", "bd",[[ w\|bd]]) +-- window +map("n", "",[[h]]) +map("n", "",[[l]]) +map("n", "",[[k]]) +map("n", "",[[j]]) + -- search map("n","sc",[[ nohlsearch]]) diff --git a/nvim/lua/nvim-lspconfig/lua.lua b/nvim/lua/nvim-lspconfig/lua.lua index 4a5ec17..703b82c 100644 --- a/nvim/lua/nvim-lspconfig/lua.lua +++ b/nvim/lua/nvim-lspconfig/lua.lua @@ -29,4 +29,4 @@ buf_set_keymap("n", "]d", "lua vim.lsp.diagnostic.goto_next()", opts) buf_set_keymap("n", "q", "lua vim.lsp.diagnostic.set_loclist()", opts) -- lsp for html , css and js/ts -require "lspconfig".gopls.setup {} +require "lspconfig".gopls.setup{} diff --git a/nvim/lua/nvimTree/lua.lua b/nvim/lua/nvimTree/lua.lua index 65fef75..1f9270c 100644 --- a/nvim/lua/nvimTree/lua.lua +++ b/nvim/lua/nvimTree/lua.lua @@ -58,6 +58,7 @@ vim.api.nvim_set_keymap( vim.g.nvim_tree_bindings = { [""] = get_lua_cb("edit"), ["l"] = get_lua_cb("edit"), + ["h"] = get_lua_cb("close_node"), ["o"] = get_lua_cb("edit"), ["<2-LeftMouse>"] = get_lua_cb("edit"), ["<2-RightMouse>"] = get_lua_cb("cd"), From 1c8c8fad3df7984a3c2c6bef28088ced62103bf6 Mon Sep 17 00:00:00 2001 From: Laily Date: Sun, 21 Mar 2021 10:42:31 +0800 Subject: [PATCH 23/26] feat(nvim): add colorsheme --- nvim/init.lua | 6 ++++-- nvim/lua/pluginsList/lua.lua | 8 +++++++- nvim/lua/telescope-nvim/lua.lua | 12 ++++++------ 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/nvim/init.lua b/nvim/init.lua index d8c38d2..5324d59 100644 --- a/nvim/init.lua +++ b/nvim/init.lua @@ -19,14 +19,16 @@ require "colorizer".setup() local cmd = vim.cmd local g = vim.g -cmd "colorscheme base16-onedark" +cmd "colorscheme darcula" cmd "syntax enable" cmd "syntax on" cmd "set tabstop=4" +cmd "autocmd BufWritePre * undojoin | Neoformat" -g.auto_save = 1 +g.auto_save = 0 g.indentLine_enabled = 1 g.indentLine_char_list = {'▏'} +g.XkbSwitchEnabled = 1 g.mapleader = " " diff --git a/nvim/lua/pluginsList/lua.lua b/nvim/lua/pluginsList/lua.lua index 3241c10..4edb5ad 100644 --- a/nvim/lua/pluginsList/lua.lua +++ b/nvim/lua/pluginsList/lua.lua @@ -11,7 +11,7 @@ return require("packer").startup( use {"glepnir/galaxyline.nvim"} use {"akinsho/nvim-bufferline.lua"} use {"907th/vim-auto-save"} - use {"nvim-treesitter/nvim-treesitter"} + use {"nvim-treesitter/nvim-treesitter", run = ":TSUpdate"} use {"chriskempson/base16-vim"} use {"norcalli/nvim-colorizer.lua"} use {"Yggdroot/indentLine"} @@ -26,5 +26,11 @@ return require("packer").startup( use {"nvim-telescope/telescope.nvim"} use {"nvim-telescope/telescope-media-files.nvim"} use {"nvim-lua/popup.nvim"} + use {"junegunn/fzf"} + use {"junegunn/fzf.vim"} + use {"lyokha/vim-xkbswitch"} + use {"rrethy/vim-hexokinase", run = "make hexokinase"} + use {"doums/darcula"} + use {"christianchiarulli/nvcode-color-schemes.vim"} end ) diff --git a/nvim/lua/telescope-nvim/lua.lua b/nvim/lua/telescope-nvim/lua.lua index ead40c0..5442b5b 100644 --- a/nvim/lua/telescope-nvim/lua.lua +++ b/nvim/lua/telescope-nvim/lua.lua @@ -61,17 +61,17 @@ local opt = {noremap = true, silent = true} vim.g.mapleader = " " -- mappings -vim.api.nvim_set_keymap("n", "ff", [[lua require('telescope.builtin').find_files()]], opt) +--vim.api.nvim_set_keymap("n", "ff", [[lua require('telescope.builtin').find_files()]], opt) vim.api.nvim_set_keymap("n", "", [[lua require('telescope.builtin').find_files()]], opt) vim.api.nvim_set_keymap( "n", - "fp", + "sp", [[lua require('telescope').extensions.media_files.media_files()]], opt ) -vim.api.nvim_set_keymap("n", "fb", [[lua require('telescope.builtin').buffers()]], opt) -vim.api.nvim_set_keymap("n", "fh", [[lua require('telescope.builtin').help_tags()]], opt) -vim.api.nvim_set_keymap("n", "fo", [[lua require('telescope.builtin').oldfiles()]], opt) -vim.api.nvim_set_keymap("n", "fm", [[ Neoformat]], opt) +vim.api.nvim_set_keymap("n", "sb", [[lua require('telescope.builtin').buffers()]], opt) +vim.api.nvim_set_keymap("n", "sh", [[lua require('telescope.builtin').help_tags()]], opt) +vim.api.nvim_set_keymap("n", "so", [[lua require('telescope.builtin').oldfiles()]], opt) +vim.api.nvim_set_keymap("n", "sm", [[ Neoformat]], opt) vim.api.nvim_set_keymap("n", "", [[ %y+]], opt) From f6b76fe898e8a967e2abda2f0894c33e65e065e0 Mon Sep 17 00:00:00 2001 From: Laily Date: Sun, 21 Mar 2021 10:51:54 +0800 Subject: [PATCH 24/26] fix: moditfy tmux git, nvim --- .gitignore | 1 + .tmux.conf | 6 +++--- git/.gitconfig | 4 ---- nvim/lua/nvimTree/lua.lua | 1 + 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 40834f1..e07b590 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ .SpaceVim.d/.netrwhist .SpaceVim.d/init.vim +.DS_Store diff --git a/.tmux.conf b/.tmux.conf index 1101953..2c79247 100644 --- a/.tmux.conf +++ b/.tmux.conf @@ -1,8 +1,8 @@ setw -g mode-keys vi -#unbind ^b +unbind ^b #set -g prefix 'C-a' -#set -g prefix ` -#bind-key ` send-prefix +set -g prefix ` +bind-key ` send-prefix bind r source-file ~/.tmux.conf \; display-message "Config reloaded" # 切分面板 diff --git a/git/.gitconfig b/git/.gitconfig index 3c0e637..2d94f0a 100644 --- a/git/.gitconfig +++ b/git/.gitconfig @@ -1,6 +1,5 @@ [user] name = Laily - email = i@laily.net [core] autocrlf = input quotepath = false @@ -17,13 +16,10 @@ bg = "!f() { git branch | grep $1; }; f" delbr = "!f(){ git branch -D `git branch | grep \"\b$1\"`; };f" cin = commit --amend --no-edit - [push] default = current [merge] tool = vimdiff -[init] - templatedir = $HOME/.dotfile/git/gittemplates diff --git a/nvim/lua/nvimTree/lua.lua b/nvim/lua/nvimTree/lua.lua index 1f9270c..7b67c4f 100644 --- a/nvim/lua/nvimTree/lua.lua +++ b/nvim/lua/nvimTree/lua.lua @@ -71,6 +71,7 @@ vim.g.nvim_tree_bindings = { [""] = get_lua_cb("preview"), ["I"] = get_lua_cb("toggle_ignored"), ["H"] = get_lua_cb("toggle_dotfiles"), + ["."] = get_lua_cb("toggle_dotfiles"), ["R"] = get_lua_cb("refresh"), ["n"] = get_lua_cb("create"), ["d"] = get_lua_cb("remove"), From 1faa19ad2b7c508babd9a51db59027fd9bf0fc76 Mon Sep 17 00:00:00 2001 From: Laily Date: Sun, 21 Mar 2021 11:35:47 +0800 Subject: [PATCH 25/26] fix(nvim): mapping --- nvim/init.lua | 1 + nvim/lua/mappings/lua.lua | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/nvim/init.lua b/nvim/init.lua index 5324d59..c3b9924 100644 --- a/nvim/init.lua +++ b/nvim/init.lua @@ -8,6 +8,7 @@ require("bufferline.lua") require("statusline.lua") require("telescope-nvim.lua") + -- lsp require("nvim-lspconfig.lua") require("nvim-compe.lua") diff --git a/nvim/lua/mappings/lua.lua b/nvim/lua/mappings/lua.lua index 5afa831..ddf329d 100644 --- a/nvim/lua/mappings/lua.lua +++ b/nvim/lua/mappings/lua.lua @@ -10,7 +10,7 @@ end map("", "c", '"+y') -- open terminals -map("n", "" , [[ vnew term://bash]] , opt) -- split term vertically , over the right +map("n", "" , [[ vnew term://bash]] , opt) -- split term vertically , over the right map("n", "" , [[ split term://bash | resize 10 ]] , opt) -- split term vertically , over the right -- file map("n","fs",[[ w]]) @@ -18,7 +18,7 @@ map("n","fs",[[ w]]) -- buffer map("n", "bn",[[ bnext]]) map("n", "bp",[[ bprev]]) -map("n", "bd",[[ w\|bd]]) +map("n", "bd",[[ bd]]) -- window map("n", "",[[h]]) From af54c1437e025fa4cad564c5fd99fb384b5a95c4 Mon Sep 17 00:00:00 2001 From: Laily Date: Sun, 21 Mar 2021 11:52:45 +0800 Subject: [PATCH 26/26] fix(nvim): add dump --- nvim/init.lua | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/nvim/init.lua b/nvim/init.lua index c3b9924..18f402e 100644 --- a/nvim/init.lua +++ b/nvim/init.lua @@ -33,6 +33,11 @@ g.XkbSwitchEnabled = 1 g.mapleader = " " +function _G.dump(...) + local objects = vim.tbl_map(vim.inspect, {...}) + print(unpack(objects)) +end + require("treesitter.lua") require("mappings.lua")