当前位置:   article > 正文

Manjaro安装与软件硬件基本配置(保姆级)_manjaro孤儿包

manjaro孤儿包

Manjaro系统的安装与各项配置

最后更新2020-07-30
本文包括

{

  1. manjaro安装

  2. qq的安装与配置

  3. 网易云的安装与bug解决(更新最新版本)

  4. julia的安装教程

  5. nvidia的驱动设置 (已更新

  6. 更换到deepin桌面

  7. 硬盘空间维护(清理pacman cache)

  8. 系统美化(美化shell);

  9. spaceVIm(基于neoVim)

}

先放一张成品图

左上是全局菜单
*** 2020-7-30 版本 ***
在这里插入图片描述

一、(初始系统win系统)manjaro系统的安装

1、准备工作

1) 8g以上u盘*1(虽然实际根本不到8g)
2) 空闲的磁盘空间40g左右
3) 脑子

2、Manjaro镜像的下载

manjaro镜像下载有很多方式,可以去官方网站下载,官网下载可能速度较慢,所以也可以也可以去清华大学开源网站、中科大开源网站等等国内镜像站下载。
这里以清华为例(下称兔娜
1)搜索 “清华开源镜像站” 点击进入(不会有人不会百度吧,不会吧不会吧不会吧?)以防有人不会清华大学开源镜像站
2)找到manjaro-cd一栏,点进去会发现有~-xfce ~-gnome ~-kde选项,这代表三种不同的桌面版本(可以理解为装修不一样),个人推荐kdegnome,两个桌面环境美化优秀(相比xfce可能更占),对于现在性能的电脑基本不在话下。
3)选择manjaro-kde进入选择一个版本(最好别选择后面带有pre的,这是测试版,可能会有bug)
4)选择后缀为.iso的文件下载即可(一般两三个G
ps:兔娜的源东西很多很稳定,但是还是软件不全,要下载一些软件建议各个开源站都去找找看

3、刻录U盘制作

1)下载刻录工具:
网上有很多刻录工具,我们这里推荐使用小巧的 rufus
2)刻录 iso
插入u盘
打开软件
选择设备为你插入的u盘
引导类型选择 镜像文件
选择你刚刚下载好的 iso 文件
选择开始( 警告: DD 模式写入!切记!!!!
等待写入完成

4、制作Manjaro系统盘

1)右键 我的电脑
2)点击 管理
3)弹出界面点击 磁盘管理
4)右键一个有空余的磁盘,点击 压缩卷
5)按照提示压缩一个空白的磁盘出来,大小至少40g,压缩完以后下面会显示被压缩的磁盘有一部分黑色的 未分配 不用管。

5、进入BIOS更改启动程序

1)查找或者尝试(一般网上有),用各种方法进入BIOS
2)更改关闭 security bootfast boot
3)如果第6部找不到启动项,回来bios调节使U盘优先级更高。
具体因为机型不同请自行百度。

6、安装Manjaro

1)插入U盘
2)重启,开机时狂按 某个键 (机型不同请百度自己的机型或者多重启测试)进入 bootmenu(启动选项)
3)进入 bootmenu 后选择USB UEFI 进入u
盘安装系统
4)进入界面后上下移动光标分别设置
tz(timezone) 为Asia/Shanghai
keytable为us(不动)
lang(language)为zh_CN
driver为free(开机以后会根据显卡类别重新安装的,不慌)
5)设置好后,移动光标到 BOOT:manjaro。XXXXXXX XXXX 回车进入安装界面

6)进入可视化安装界面以后点击桌面上的Install Manjaro开始安装
6.1)进入欢迎卡一会,然后选位置Asia/shanghai,键盘不动
6.2)分区一定要选择 手动分区,选择你之前压缩的那个 储存器 点击我们之前分好的那个区(此时在安装界面会显示这个区啥都没有,连颜色都么有),点击新建,让后挂载点设置为 / ,确定,下一步
6.3)为了简化安装不用继续分区,找到点击可以查看每个分区的属性,挨个查看,直到找到挂载点为 /boot 的分区,点击下面的属性把 /boot/efi 勾上确定。
7)用户设置,姓名,计算机名,用户密码,管理员(root)密码设置。(建议好好设置管理员密码,很重要)
8)点击 下一步 (剩下自己看着配置)
9)狂点 下一步
10)重启,选择进入 bootmenu 此时会出现选项manjaro,(可以把u盘取下来了)选择manjaro进入。

7.初步配置Manjaro

1)进入系统后,打开终端(在“开始菜单”里)
2)输入(回车键是运行!!!!!)
2.1)寻找国内镜像站

su
# 输入密码进入root权限(配置系统
pacman-mirrors -i -c China -m rank
# 排列出manjaro中国开源镜像站并弹窗(注意大小写)
# 选择任意一个镜像站,这里我们选择兔娜姐姐(清华大学镜像站https://mirrors.tuna.tsinghua.edu.cn/)
  • 1
  • 2
  • 3
  • 4
  • 5

2.2)添加CN-Arch源

nano /etc/pacman.conf
# 使用nano编辑器编辑pacman(包管理器-理解为appstore)配置文件
# 在文件的最后两行加入
[archlinuxcn]
Server=https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
  • 1
  • 2
  • 3
  • 4
  • 5

2.3) 更新指令 (常用)
上一步结束后执行(不用新开对话框,保证在su状态下执行就可

pacman -Syy # 软件包列表更新
pacman -S archlinuxcn-keyring # 导入key
pacman -Syu # 全局更新
  • 1
  • 2
  • 3

2.4)安装中文输入法
这里推荐安装manjaro

pacman -S fcitx-im fcitx-configtool manjaro-asian-input-support-fcitx
pacman -S fcitx-cloudpinyin
  • 1
  • 2

安装好后输入

exit
# 退回普通用户
nano ~/.xprofile
# 使用nano编辑器编辑文件,如果文件不存在会自动创建
  • 1
  • 2
  • 3
  • 4

在文件中输入以下内容,并且按ctrl+o回车确定,ctrl+x退回终端

export LC_ALL=zh_CN.UTF-8
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=“@im=fcitx”
  • 1
  • 2
  • 3
  • 4

在fcitx设置中配置云拼音来源为百度。

2.5) 安装软件方法
可以在 开始菜单 中的 添加/删除软件 中直接安装,也记录下名称,在终端安装(终端安装好像帅一点?)

su # 如果已经在root环境下则不用提权

# 常用安装删除指令一览
pacman -S XXXXX
# 安装XXXXX

pacman -R XXXXX
# 删除XXXXX(Remove)(保留依赖的包)

pacman -Rs XXXXX
# 删除XXXXX以及其依赖的包(诛灭九族)

pacman -U XXXXX
# 安装自己下载的XXXXX包(taz.gz)

pacman -Sc
# 清理未安装的包文件
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

比如:

# 安装VScode
sudo pacman -S visual-studio-code-bin
# sudo命令自行百度(如果处于root状态,也就是“su”过了就可以不要)

# 安装网易云音乐(可能会有中文无法输入的bug,以后再更新
sudo pacman -S netease-cloud-music
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

安装完成后须在 开始菜单 中找到并且添加到桌面,不然是不会主动添加的

二、各类软件及bug

1、关于QQ(Tim无需修改文件就可以输入中文,而且表现更好)

安装QQ
打开一个终端

su # 提权
pacman -S deepin.com.qq.im
  • 1
  • 2

如果你安装的manjaro是gnome,那么恭喜你
大功告成!
但如果是xfce和kde,这时候还打不开qq
原因是缺乏一个必要的依赖,安装即可

pacman -S cinnamon-settings-daemon
/usr/lib/cinnamon-settings-daemon/csd-xsettings # 执行运行该环境
  • 1
  • 2

并且添加开机脚本(系统设置->开关机->自动启动->添加脚本->复制/usr/lib/cinnamon-settings-daemon/csd-xsettings,并且确定即可。
关于无法看到图片和头像
原因是不支持ipv6但是linux默认开启ipv6,禁用即可

sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1
  • 1
  • 2

PS:每次关机后重新打开QQ前都要重新输入,且禁用ipv6后无法使用软件版百度网盘,如需使用重新开启ipv6即可(上面的1改成0,重新执行)
关于聊天框不能输入中文
修改run.sh即可

nano /opt/deepinwine/apps/Deepin-QQ/run.sh
  • 1

找个地方输入

export LC_ALL=zh_CN.UTF-8
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=“@im=fcitx”
  • 1
  • 2
  • 3
  • 4

保存,重新打开QQ即可(永久使用)

2、网易云bug

由于官方源和AUR以及yay都删除了网易云依赖的包 qcef ,所以需要我们自己编译安装 \

# 克隆脚本
git clone https://aur.archlinux.org/qcef.git
# 切换到路径
cd qcef
#编译安装
makepkg -si

### 注意安装过程中会要求输入密码
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

关于无法输入中文
修改.bash文件

sudo nano /opt/netease/netease-cloud-music/netease-cloud-music.bash
  • 1

直接全部替换成我这个就行

#!/bin/sh
HERE="$(dirname "$(readlink -f "${0}")")"
#export LD_LIBRARY_PATH="${HERE}"/libs
#export QT_PLUGIN_PATH="${HERE}"/plugins 
#export QT_QPA_PLATFORM_PLUGIN_PATH="${HERE}"/plugins/platforms
export XDG_CURRENT_DESKTOP=DDE
export LD_LIBRARY_PATH=/usr/lib
exec "${HERE}"/netease-cloud-music $@
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
3、科学计算语言julia

安装

sudo pacman -S julia
  • 1

安装好后更换国内镜像

julia # 回车进入julia
# 按"]"键进入Pkg包管理模式
(@v1.4) pkg> add PkgMirrors # 回车
# 安装好后,按"backspace"(退格键退出包管理模式)
julia> PkgMirrors.availables() # 列出可用镜像源
julia> PkgMirrors.setmirror("USTC") # 选择中科大镜像源
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

使用并且安装镜像

julia> import PkgMirrors # 每次重新打开都需要重新引用

# 全包升级
(1.4.0) pkg> update
# 安装XXXXX包
(1.4.0) pkg> add XXXXX
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

如果julia版本在1.4以上可以使用服务器加速下载

julia> ENV["JULIA_PKG_SERVER"] = "https://kr.pkg.julialang.org"
# 两组服务器
# https://pkg.julialang.org 位于美国
# https://kr.pkg.julialang.org 位于韩国首尔
  • 1
  • 2
  • 3
  • 4

然后再安装包

4、n卡双显卡的驱动(实现命令切换显卡)

本节部分引用自github显卡切换项目

1、删除开源驱动,安装闭源驱动

我们安装的时候安装的是开源驱动(free),如果直接安装nvidia驱动会黑屏卡死。
方法1)在 Manjaro-Setting-Manager(开始菜单里有)中找到 硬件设定 , 选择 Auto Install Proprietary Diver 安装闭源驱动。
删除带有bumblebee的驱动(右键删除)
方法2)命令行安装

sudo mhwd -i pci video-nvidia
# 选择你最合适的驱动安装(我的1060显卡是440)
  • 1
  • 2

查看显卡安装情况

# 普通用户下
mhwd -li
  • 1
  • 2

如果是看到有video-linux以及video-nvidia-xxxxx,而且后者的属性是 false 说明安装成功。否则重新装

切记:本流程未全部完成前千万别重启!

切记:本流程未全部完成前千万别重启!

切记:本流程未全部完成前千万别重启!

2、安装插件所需依赖

由于我们最后安装的插件是github直接下载的,没有附带环境依赖。所以我们先安装环境依赖文件。

sudo pacman -S linux54-headers acpi_call-dkms xorg-xrandr xf86-video-intel git
  • 1
注意!

我的内核版本是5.4,所以我安装的是linux54-header,请安装前先查看自己的内核版本(系统设置 / 内核 查看正在运行的内核),选择对应的安装。比如你的是5.3,那就安装linux53-headers。

3、安装插件

先启用

sudo modprobe acpi_call
  • 1

安装github插件

#从github克隆
git clone https://github.com/dglt1/optimus-switch-sddm.git 
cd ~/optimus-switch-sddm  # 切换到插件文件夹
chmod +x install.sh	      # 给安装程序添加权限
sudo ./install.sh	      # 安装插件
  • 1
  • 2
  • 3
  • 4
  • 5

大功告成!

现在你可以用命令切换显卡了

# 启用Intel核显
sudo set-intel.sh

# 启用Nvidia-Prime
sudo set-nvidia.sh
  • 1
  • 2
  • 3
  • 4
  • 5
4、“售后服务”

切换显卡后会发现字体大小发生了改变,而且登录界面也会变大或者缩小,这是因为字体的dpi并未固定:
系统字体:
系统设置 / 字体 选择固定DPI 值为96
登录界面:
系统设置 / 开机和关机 / 登录屏幕(SDDM)/ 高级 选择“同步”

解决画面撕裂
系统设置/显示和监控/混成器
设置“放缩方法” = 精确
“渲染后端” = OpenGL 3.1
“避免撕裂” = 全场景重华 // 此项如果显卡8行的话当我没说
”保留缩略图“ = 只对显示的窗口
点击应用,OK,现在可以快乐视频了!

5、“增值服务”

图形化界面
github图形化切换显卡项目

顺便说一句:我直接启动nvidia-prime之后删除了linux-video驱动,强制所有程序使用独显,现在还没出现啥大问题,只是耗电上去了。

切换到Deepin桌面环境

1、下载deepin桌面环境

sudo pacman -S deepin deepin-extra
  • 1

2、修改配置

sudo nano /etc/lightdm/lightdm.conf
  • 1

找到其中[*seat]下面的
greeter-session= 改成 greeter-session=lightdm-deepin-greeter
注意如果前面有#(处于注释状态)要删除#
3、(如果是KDE执行这步,不然跳过)禁用kde登录

sudo systemctl disable sddm
  • 1

4、卸载原来的桌面工具(可选)

XFCE下
# 我之前有讲过Rsc命令
sudo pacman -Rsc xfce4
  • 1
  • 2
KDE下
sudo pacman -Rsc plasma
sudo pacman -Rsc kde-applications
  • 1
  • 2

5、重启电脑 享受Deepin

reboot
# 或者直接重启
  • 1
  • 2

6、还原KDE或者Xfce
按照我的步骤反推回去就行
7、售后服务
其实 还是KDE香,真的。

清理pacman cache(包管理缓存文件)

摘录自OSTechNix

在我们多次更新以后,可能遇到硬盘空间不够的问题(特别是 单硬盘双系统 用户),这个时候我们就需要进行包管理器的缓存清除。

# 提权
su

# 查看安装包缓存数量
ls /var/cache/pacman/pkg | wc -l

# 查看占用系统空间大小
du -sh /var/cache/pacman/pkg

# 保留最新的三个版本其余清除
paccache -r

# 只保留最新版本
paccache -rk 1

# 删除已经卸载的安装包的缓存
paccache -ruk0
# 等价于这一条命令
pacman -Sc

# 删除所以缓存文件(我上面已经讲过)
pacman -Scc
# 这条命令慎重使用
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
售后服务:

比如我想在安装完包后自动清理怎么办呢?
加入pacman脚本即可

# 新建一个脚本
sudo mkdir /etc/pacman.d/hooks
sudo nano /etc/pacman.d/hooks/clean_package_cache
  • 1
  • 2
  • 3

打开后加入以下几行

# 触发脚本条件
[Trigger]
# 升级
Operation = Upgrade
# 安装
Operation = Install
# 删除
Operation = Remove
Type = Package
Target = *
# 执行以下动作
[Action]
# 屏幕显示:正在清除缓存
Description = Cleaning pacman cache...
When = PostTransaction
# 命令是
Exec = /usr/bin/paccache -r
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

最后的这个命令可以更改(改成你喜欢的就行)。

美化

shell的美化

git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
# 注意root身份也要执行一次
# 插件
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

配置文件

# 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/.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="agnoster"

# 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=13

# 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
	)

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"

# 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"
################################################################################
#color{{{
autoload colors
colors

for color in RED GREEN YELLOW BLUE MAGENTA CYAN WHITE; do
eval _$color='%{$terminfo[bold]$fg[${(L)color}]%}'
eval $color='%{$fg[${(L)color}]%}'
(( count = $count + 1 ))
done
FINISH="%{$terminfo[sgr0]%}"
#}}}


#命令提示符
#RPROMPT=$(echo "$RED%D %T$FINISH")
#PROMPT=$(echo "$CYAN%n@$YELLOW%M:$GREEN%/$_YELLOW>$FINISH ")


#PROMPT=$(echo "$BLUE%M$GREEN%/
#$CYAN%n@$BLUE%M:$GREEN%/$_YELLOW>>>$FINISH ")
#标题栏、任务栏样式{{{
case $TERM in (*xterm*|*rxvt*|(dt|k|E)term)
precmd () { print -Pn "\e]0;%n@%M//%/\a" }
preexec () { print -Pn "\e]0;%n@%M//%/\ $1\a" }
;;
esac
#}}}




#关于历史纪录的配置 {{{
#历史纪录条目数量
export HISTSIZE=10000
#注销后保存的历史纪录条目数量
export SAVEHIST=10000
#历史纪录文件
export HISTFILE=~/.zsh_history
#以附加的方式写入历史纪录
setopt INC_APPEND_HISTORY
#如果连续输入的命令相同,历史纪录中只保留一个
setopt HIST_IGNORE_DUPS
#为历史纪录中的命令添加时间戳
setopt EXTENDED_HISTORY

#启用 cd 命令的历史纪录,cd -[TAB]进入历史路径
setopt AUTO_PUSHD
#相同的历史路径只保留一个
setopt PUSHD_IGNORE_DUPS

#在命令前添加空格,不将此命令添加到纪录文件中
#setopt HIST_IGNORE_SPACE
#}}}

# 补全{{{
#彩色补全菜单
eval $(dircolors -b)
export ZLSCOLORS="${LS_COLORS}"
zmodload zsh/complist
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31'

#修正大小写
zstyle ':completion:*' matcher-list '' 'm:{a-zA-Z}={A-Za-z}'
#错误校正
zstyle ':completion:*' completer _complete _match _approximate
zstyle ':completion:*:match:*' original only
zstyle ':completion:*:approximate:*' max-errors 1 numeric

#kill 命令补全
compdef pkill=kill
compdef pkill=killall
zstyle ':completion:*:*:kill:*' menu yes select
zstyle ':completion:*:*:*:*:processes' force-list always
zstyle ':completion:*:processes' command 'ps -au$USER'

#补全类型提示分组
zstyle ':completion:*:matches' group 'yes'
zstyle ':completion:*' group-name ''
zstyle ':completion:*:options' description 'yes'
zstyle ':completion:*:options' auto-description '%d'
zstyle ':completion:*:descriptions' format $'\e[01;33m -- %d --\e[0m'
zstyle ':completion:*:messages' format $'\e[01;35m -- %d --\e[0m'
zstyle ':completion:*:warnings' format $'\e[01;31m -- No Matches Found --\e[0m'
zstyle ':completion:*:corrections' format $'\e[01;32m -- %d (errors: %e) --\e[0m'

# cd ~ 补全顺序
zstyle ':completion:*:-tilde-:*' group-order 'named-directories' 'path-directories' 'users' 'expand'
#}}}


##行编辑高亮模式 {{{
# Ctrl+@ 设置标记,标记和光标点之间为 region
zle_highlight=(region:bg=magenta #选中区域
special:bold      #特殊字符
isearch:underline)#搜索时使用的关键字
#}}}

##空行(光标在行首)补全 "cd " {{{
user-complete(){
case $BUFFER in
"" )                       # 空行填入 "cd "
BUFFER="cd "
zle end-of-line
zle expand-or-complete
;;
"cd --" )                  # "cd --" 替换为 "cd +"
BUFFER="cd +"
zle end-of-line
zle expand-or-complete
;;
"cd +-" )                  # "cd +-" 替换为 "cd -"
BUFFER="cd -"
zle end-of-line
zle expand-or-complete
;;
* )
zle expand-or-complete
;;
esac
}
zle -N user-complete
bindkey "\t" user-complete
#}}}



#命令别名 {{{
alias cp='cp -i'
alias mv='mv -i'
alias rm='rm -i'
alias ls='ls -F --color=auto'
alias ll='ls -l --color=auto'
alias grep='grep --color=auto'
alias la='ls -a'
alias pacman='pacman --color=auto'
alias yay='yay --color=auto'
#}}}


#漂亮又实用的命令高亮界面
setopt extended_glob
TOKENS_FOLLOWED_BY_COMMANDS=('|' '||' ';' '&' '&&' 'sudo' 'do' 'time' 'strace')


recolor-cmd() {
region_highlight=()
colorize=true
start_pos=0
for arg in ${(z)BUFFER}; do
((start_pos+=${#BUFFER[$start_pos+1,-1]}-${#${BUFFER[$start_pos+1,-1]## #}}))
((end_pos=$start_pos+${#arg}))
if $colorize; then
colorize=false
res=$(LC_ALL=C builtin type $arg 2>/dev/null)
case $res in
*'reserved word'*)   style="fg=magenta,bold";;
*'alias for'*)       style="fg=cyan,bold";;
*'shell builtin'*)   style="fg=yellow,bold";;
*'shell function'*)  style='fg=green,bold';;
*"$arg is"*)
[[ $arg = 'sudo' ]] && style="fg=red,bold" || style="fg=blue,bold";;
*)                   style='none,bold';;
esac
region_highlight+=("$start_pos $end_pos $style")
fi
[[ ${${TOKENS_FOLLOWED_BY_COMMANDS[(r)${arg//|/\|}]}:+yes} = 'yes' ]] && colorize=true
start_pos=$end_pos
done
}
check-cmd-self-insert() { zle .self-insert && recolor-cmd }
check-cmd-backward-delete-char() { zle .backward-delete-char && recolor-cmd }

zle -N self-insert check-cmd-self-insert
zle -N backward-delete-char check-cmd-backward-delete-char
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • 275
  • 276
  • 277
  • 278

SpaceVim

安装

# root下
pacman -S neovim

# 普通用户下
curl -sLf https://spacevim.org/cn/install.sh | bash
  • 1
  • 2
  • 3
  • 4
  • 5

自动配置不用管

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/74499
推荐阅读
相关标签
  

闽ICP备14008679号