[linux] 上手新ubuntu机器的初始化工作(自用侵删)

news2024/11/15 14:09:16

文章目录

  • 环境类
    • Vim
    • zsh
    • other
  • 应用类
    • Typora
      • 激活环境准备
      • 解包替换文件app.asar
      • 激活Typora
    • VsCode
      • extension
      • .vscode
      • 乱码
    • WattToolkit
    • QQ
    • WPS
    • 输入法:Fcitx
    • Deepin-wine : Wechat

环境类

Vim

直接贴配置

vim-Plug:

let mapleader = ","
let g:mapleader = ","
let maplocalleader = ","
"NerdTree
nnoremap <leader>n :NERDTreeFocus<CR>
nnoremap <leader>m :NERDTree<CR>
nnoremap <leader>t :NERDTreeToggle<CR>
nnoremap <leader>f :NERDTreeFind<CR>


"快捷键修改"

set tabstop=4 "tab键位数"
set shiftwidth=4 "自动缩进位数"
set number
imap jk <ESC>
nmap <space> :
"vim-Plug 下载"
call plug#begin('~/.vim/plugged')
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
Plug 'scrooloose/nerdtree'
Plug 'luochen1990/rainbow'
Plug 'scrooloose/nerdcommenter'
Plug 'altercation/vim-colors-solarized'
Plug 'jiangmiao/auto-pairs'
Plug 'Valloric/YouCompleteMe'
call plug#end()

"配置


"vim-airline"

set laststatus=2  "永远显示状态栏"
let g:airline_powerline_fonts = 1  " 支持 powerline 字体"
let g:airline#extensions#tabline#enabled = 1 "显示窗口tab和buffer"
let g:airline_theme='bubblegum'


if !exists('g:airline_symbols')
	let g:airline_symbols = {}
endif
let g:airline_left_sep = '▶'
let g:airline_left_alt_sep = '❯'
let g:airline_right_sep = '◀'
let g:airline_right_alt_sep = '❮'
let g:airline_symbols.linenr = '¶'
let g:airline_symbols.branch = '⎇'


"airline end



" nerd - commenter
" Add spaces after comment delimiters by default
let g:NERDSpaceDelims = 1


" Use compact syntax for prettified multi-line comments
let g:NERDCompactSexyComs = 1


" Align line-wise comment delimiters flush left instead of following code indentation
let g:NERDDefaultAlign = 'left'


" Set a language to use its alternate delimiters by default
let g:NERDAltDelims_java = 1


" Add your own custom formats or override the defaults
let g:NERDCustomDelimiters = { 'c': { 'left': '/**','right': '*/'} }

"Allow commenting and inverting empty lines (useful when commenting a region)
let g:NERDCommentEmptyLines = 1


" Enable trimming of trailing whitespace when uncommenting"
let g:NERDTrimTrailingWhitespace = 1


" Enable NERDCommenterToggle to check all selected lines is commented or not"
let g:NERDToggleCheckAllLines = 1

" vim-rainbow{}
let g:rainbow_active = 1

" vim-color- solarized
if has("gui_runing")              "如果在图形用户界面
    set background=light          "设置背景色为亮色
else                              "设置背景色为深色
    set background=dark           "就开启256色支持,默认为8色
    set t_Co=256
endif
let g:solarized_bold=0
let g:solarized_underline=1

" vim-autopairs
au Filetype FILETYPE let b:AutoPairs = {"(": ")"}
au FileType php      let b:AutoPairs = AutoPairsDefine({'<?' : '?>', '<?php': '?>'})

let g:ycm_server_python_interpreter="/usr/bin/python3"
let g:ycm_global_ycm_extra_conf="~/.vim/plugged/YouCompleteMe/third_party/ycmd/examples/.ycm_extra_conf.py""

zsh

1.zsh:

sudo apt install zsh

2.oh-my-zsh:

Basic install:

Oh My Zsh is installed by running one of the following commands in your terminal. You can install this via the command-line with either curl, wget or another similar tool.

MethodCommand
curlsh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
wgetsh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
fetchsh -c "$(fetch -o - https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

from : https://github.com/ohmyzsh/ohmyzsh

3.powerlevel10k
一个zsh主题


plugin:

 plugins=(
           git
           zsh-history-substring-search
           zsh-autosuggestions
           zsh-syntax-highlighting
           )

以autosuggestiongs为例:
找到插件对应仓库,然后git clone

git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions


other

  • gcc / g++

    sudo apt update
    sudo apt install build-essential
    
  • git

  • yum

  • rpm

  • Alien

Alien是用来将 rpm 包转换成 deb 包的。
rpm文件不能直接被安装,需要转换成 deb。
ubuntu 的安装包格式是 deb。

  • shell有zsh或者fish,
  • 编辑器有neovim或者emacs
  • 文件浏览有ls和ranger版本控制有lazygit
  • 终端复用有tmux

还可以换的玩具有:
cgdb valgrind rr make autotools cmake meson xmake

示例图
在这里插入图片描述


应用类

Typora

支持typora版本1.0.3
本人已测试平台:Ubuntu22.04

激活环境准备

  • 相关依赖

安装Python3、Python3-pip

安装nodejs

sudo apt-get install nodejs
  • 克隆typoraCraker项目
git clone https://github.com/cnvetman/typoracracker.git
  • python相关依赖

切换到克隆下来的项目根目录typoracracker下执行:

pip3 install -r requirements.txt
  • **下载Typora1.0.3版本

项目目录下有typora_1.0.3的deb包,执行下面命令直接安装即可。

dpkg -i typora_1.0.3_amd64.deb

解包替换文件app.asar

以下操作都是切换到typoraCracker项目根目录下执行

注意,强烈建议在解包原生文件到~/Desktop中

  • 解包原生app.asar

安装Typora后,原生app.asar文件默认路径是/usr/share/typora/resources/app.asar;

解包原生app.asar文件:

python3 typora.py /usr/share/typora/resources/app.asar ~/Desktop/  
#解包后,在桌面会有一个`dec_app`目录
  • 修改License.js

修改dec_app目录中的License.js;在typoraCracker项目下,提供有修改好的License.js,所以直接替换即可:

  cp example/patch/License.js ~/Desktop/dec_app/
  • 生成app.asar
python3 typora.py -u ~/Desktop/dec_app ~/Desktop
# 在~/Desktop路径下,会生成新的的app.asar文件替换app.asar
  • 替换app.asar

将Typora原生的的app.asar文件替换:

# 备份原生app.asar文件
sudo cp /usr/share/typora/resources/app.asar /usr/share/typora/resources/app.asar.bak    
# 用新生成的app.asar文件替换typora自带的app.asar文件
sudo cp ~/Desktop/app.asar /usr/share/typora/resources/app.asar         

激活Typora

在typoraCracker项目根路径下,执行keygen.js脚本:

生成激活码

node example/keygen.js

得到激活码后,打开Typora软件 --> Typora帮助 --> 我的许可证 --> 输入你的激活信息,随便一个邮箱加生成的激活码。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_73546177/article/details/132033297


VsCode

extension

  • C++/C extension
  • Code Runner
  • Tabnine AI autocomplete

.vscode

  1. c_cpp_properties.json

    鼠标点在.c的源文件内部,按 Ctrl+Shift+p 快捷键,在弹出的界面中选择: [C/C++:编配置(UI)],然后进入设置页面。

    img

    img

    点进去之后我们要设置我们的编译器路径和IntelliSense 模式:
    (windwos用户可以考虑。我使用ubuntu + gcc没有操作这一步,默认设置)img

    img

  2. tasks.json

    创建执行任务 task.json

    要编译代码,我们接下来,在终端中:配置任务,如下图:

    img

    然后选择gcc.exe:

    img

    打开之后就会出现一个新的文件夹:这个文件是专门来执行编译任务的。

    img

原文链接:https://blog.csdn.net/Yikefore/article/details/130033638

  1. launch.json

    Right click , then click “Add Debug Configuration.”

乱码

ubuntu使用 Visual Studio Code 运行C程序时终端(控制台)上显示:

result [1] + Done “/usr/bin/gdb” --interpreter=mi --tty=${DbgTerm} 0<"/tmp/Microsoft-MIEngine-In-b608v45i.py3" 1>"/tmp/Microsoft-MIEngine-Out-42xjb3vz.7lk"

解决方式

在 launch.json 文件中的 configurations 字段中添加一项

"miDebuggerArgs": "-q -ex quit; wait() { fg >/dev/null; }; /bin/gdb -q --interpreter=mi",

再次运行C程序就不会出现不需要的信息了!
————————————————

版权声明:本文为博主 九思梦鹿 原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/WU2629409421perfect/article/details/113357420


下面这三个软件没什么好说的。
观望下deb包,然后sudo dpkg -i 就OK了。
不过让我长见识的是,Ubuntu 桌面应用的快捷方式,竟然要到/usr/share/applications这个目录下,找到.desktop文件,右键选择allow launching,这个应用才能从黑色变成红色,名字也自动变成所写。
还蛮神奇的…

  • 话说我一开始发现原来 deb 包就是安装包,dpkg -i就是安装的时候,我震惊了;
  • 发现桌面快捷方式是.desktop文件,而且要allow launching才能浮现真容的时候,我又一次震惊了。
  • 发现/usr/bin下面的都是系统预装的可执行程序(命令),我还因为多敲了一个空格,sudo rm了bin目录的所有文件的时候,我又又又震震震惊了
    ——在被锁屏页面将我的急救备份文件拒之门外的时候,我笑了笑,感叹自己二十二岁已经历了人生一次大起大落而笑了。
    于是重装系统喽。(现在看来,这篇文章以及 Ubuntu 全部 Bug 的解决没有辜负自己两天心流的努力呀!😀)

(ps: /usr/local/bin目录是给用户放置自己的可执行程序.,不会被系统升级而覆盖同名文件。)

WattToolkit

QQ

WPS

输入法:Fcitx

6.4.2024
输入法。逆天输入法,总是卡QT 和GTK文件。一开始用fcitx4 GTK全部不兼容。后来用fcitx5 ,支持火狐浏览器和终端用了。自己下载的桌面应用程序还是用不了。逆天


6.6.2024
更新。可以用了,两天没开电脑,今天上网搜了搜,无意中发现我的Typora、WPS 和QQ 这类桌面应用程序都能用了。
但是这个时候fcitx-diagnose还是会有报错。
至少说明这些错误和“是否支持桌面程序”无关。

4.fcitx-remote:
无法连接到 fcitx.

5.DBus 界面:
使用 dbus-send 来检查 dbus。
找不到 DBus 名称 org.fcitx.Fcitx 的所有者。
找不到 DBus 名称 org.fcitx.Fcitx 的 pid 所有者。
2.用于 GTK±2.0 的配置界面:
未找到 gtk2 的配置界面.
2.根窗口上的 XIM_SERVERS:
Xim 服务名称: “fcitx5” 与环境变量中设置的值 “fcitx” 不同.
3.QT输入法模块文件
无法找到 Qt4 的 fcitx 输入法模块.

4.用户界面
无法找到 kimpanel dbus 接口或非 kimpanel 用户界面.

但也不排除是因为我运行了这个指令

sudo apt-get install fcitx-libs-dev                                        

把最后欠缺的依赖给安装上了。
AnyWay,属于是柳暗花明又一村了。

这次经历让我懂得了:
1.用 sudo rm 时请抱好极大求生欲
2.Github 要学会看 issue
3.少用百度搜,都是来回的copy.
用Bing更好。

Deepin-wine : Wechat

在 fcitx 的 issue 里找解决方案的时候,我无意中发现了 deepin-wine-ubuntu这个仓库。这玩意居然能装微信!
不需要借助 铜豌豆 这种庞然大物,用Docker解决微信安装问题确实是不错的实践。
后续我会找机会把微信这个BOSS拿下。
现阶段可以说除微信外的所有BUG 、APP 都已经拿下了。

奥,除了唯一的小问题:为什么 zsh 的 plugins 失效了,不给我自动补全和高亮。
可恶。
vim-Plug 也还没安上呢。

OK ,一身轻松。可以歇歇了。
如果这个东西是你从0到1,一个一个 BUG解决,一个一个零件亲手建设起来的。随手的使用都会有很大的成就感。

比如现在的中文输入法哈哈。
在这里插入图片描述
在这里插入图片描述


所有问题已解决。收心学数学去了。

  1. zsh插件没查到是因为.zshrc里原来的 plugins 没看到,写了两个plugin。
  2. fcitx输入法有两个版本:fcitx4fcitx5。我的ubuntu22.0不支持4,支持5。
  3. Vim-Plug 安装时总连接不上Github。换源后完美解决。(改plug.vim两处)
  4. docker和虚拟机貌似也能实现微信。但我目前没有这个心思去研究docker,再把微信移植过去。所以先用简单易用的deepin-wine吧。
  5. 微信这类官方不支持的应用可以用wine解决。wine再往上一层,就是我所用的github项目:deepin-wine

deepin-wine 有两个版本,一个wszqkzqk,一个zq1997
两个rep都有5k+的star,但是wszqkzqk的 wine 22年就不再维护,关闭了issue。
zq的一直在更新。所以用他的了。(实际上w的我尝试过但没有安装成功)

关于wine

  • wine 运用API转换技术实做出Linux对应到Windows相对应的函数来调用DLL以运行Windows程序。Wine 允许在 Linux 和其他类 Unix 操作系统上运行 Windows 应用程序的兼容层。
  • Wine是自由软件,在GNU通用公共许可证(LGPL) 下发布。名称是 “Wine Is Not an Emulator” 的缩写(Wine不是Windows模拟器,)。
  • Wine 通过提供一套模拟 Windows API 的库,使得许多 Windows 程序能够在 Linux 系统上运行,而无需对源代码进行修改。

Deepin-Wine 是一个开源项目,它基于 Wine(Wine Is Not an Emulator)进行开发,旨在优化 Wine 在 Linux 系统上的体验,特别是针对深度科技(Deepin)团队维护的 Linux 发行版


一种未来的应用方案:用Windows + WSL,在WSL中搭建开发环境,Windows Terminal做终端。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1813091.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

据阿谱尔APO Research统计显示,2023年全球有机硅弹性体凝胶市场销售额约为2.1亿美元

根据阿谱尔 (APO Research&#xff09;的统计及预测&#xff0c;2023年全球有机硅弹性体凝胶市场销售额约为2.1亿美元&#xff0c;预计在2024-2030年预测期内将以超过4.17%的CAGR&#xff08;年复合增长率&#xff09;增长。 有机硅弹性体凝胶是一类具有独特性质和广泛应用领域…

labelme转YOLOv8、YOLOv5 标签格式 标注数据

前言 本文分析将labelme的标签&#xff0c;转为YOLOv8、YOLOv5的格式&#xff0c;实现模型训练。 首先了解YOLOv8和YOLOv5标签格式&#xff0c;然后了解labelme标签格式&#xff0c;最近实现数据格式转换。 1、YOLOv8和YOLOv5标签格式 YOLOv8 的标签格式与 YOLOv5 基本相同&…

拿到一个职称,竟然有这么多好处,你不知道吗?

很多从事建筑行业的小伙伴们都想评一个职称&#xff0c;但是很多人可能都是跟风&#xff0c;觉得同事评一个我也要评一个&#xff0c;那么拿到职称具体有哪些好处&#xff1f;甘建二给您分享一下&#xff1a; 1.专业认可&#xff1a; 俗话说&#xff0c;术业有专攻&#xff0c…

电磁兼容(EMC):整改案例(一)无时钟电路哪来的窄带干扰

目录 1. 异常现象 2. 原因分析 3. 整改方案 4. 总结 1. 异常现象 某家电用电器产品依据GB 4343.1-2018 家用电器、电动工具和类似器具的电磁兼容要求 第1部分&#xff1a;发射进行端子电压测试&#xff0c;测试结果如下图示。在频点40MHz裕量不足&#xff0c;仅有0.4dB。 2…

【因果推断python】28_面板数据和固定效应2

目录 固定效应 固定效应 为了方面后面更正式地讲述&#xff0c;让我们首先看一下我们拥有的数据。按照我们的例子&#xff0c;我们将尝试估计婚姻对收入的影响。我们的数据包含多年以来多个个体 (nr) 的这两个变量&#xff0c;married 和lwage。请注意&#xff0c;工资采用对数…

无线麦克风什么牌子的音质效果好?轻揭无线领夹麦克风哪个牌子好

​随着科技的不断发展&#xff0c;无线领夹麦克风已经成为现代演讲、演出和采访中不可或缺的工具。这种小巧便携的设备&#xff0c;能够让我们摆脱线缆的束缚&#xff0c;自由地在舞台上或讲台上移动&#xff0c;同时保持声音的清晰和稳定。在这篇文章中&#xff0c;我们将介绍…

【课程总结】Day6(下):机器学习项目实战–成人收入预测

机器学习项目实战&#xff1a;成人收入预测 项目目的 基于个人收入数据(包括教育程度、年龄、性别等)的数据集&#xff0c;通过机器学习算法&#xff0c;预测一个人的年收入是否超过5万美金。 数据集 地址&#xff1a;http://idatascience.cn/dataset-detail?table_id10036…

【UML用户指南】-14-对高级结构建模-实例

目录 1、实例的组成结构 1.1、类型 1.2、名称 1.3、操作 1.4、状态 1.5、其他特征 1.5.1、主动对象 1.5.2、链 1.5.3、静态属性 1.6、标准元素 实例是抽象的具体表现&#xff0c;可以对它施加一组操作&#xff0c;而且它可能有一组状态&#xff0c;来存储操作的结果。…

leetcode-04-[24]两两交换链表中的节点[19]删除链表的倒数第N个节点[160]相交链表[142]环形链表II

一、[24]两两交换链表中的节点 重点&#xff1a;暂存节点 class Solution {public ListNode swapPairs(ListNode head) {ListNode dummyHeadnew ListNode(-1);dummyHead.nexthead;ListNode predummyHead;//重点&#xff1a;存节点while(pre.next!null&&pre.next.next…

AI智能体的分级

技术的分级 人们往往通过对一个复杂的技术进行分级&#xff0c;明确性能、适用范围和价值&#xff0c;方便比较、选择和管理&#xff0c;提高使用效率&#xff0c;促进资源合理分配和技术改进和标准化。 比如&#xff0c;国际汽车工程师学会&#xff08;SAE&#xff09;定义了自…

CANOpen转PROFINET网关连接低压伺服系统

在现代工业自动化领域&#xff0c;随着技术的不断进步&#xff0c;各种总线通讯协议之间的转换和互操作性变得越来越重要。CANOpen和PROFINET作为两种广泛应用的通讯协议&#xff0c;各自具有独特的优势和应用场景。然而&#xff0c;在实际应用中&#xff0c;往往需要将CANOpen…

python使用wkhtmltopdf将html字符串保存pdf,解决出现方框的问题

出现的问题: 解决办法: <html> <head><meta charset="UTF-8"/> </head> <style> * {font-family: Arial,SimSun !important; } </style> </html>在html字符串前面加上上面代码,意思是设置字体编码和样式 html示例:…

vue2前置路由守卫中使用this.$store.state报错解决

1、问题描述&#xff1a;在前置路由守卫逻辑中&#xff0c;要更改vuex中的store的state状态&#xff0c;使用常规的this.$store.state报错 2、问题原因&#xff1a; 在vue2是vueRouter前置路由守卫中&#xff0c;this关键字并不会指向vue实例&#xff0c;因此不能使用this.$st…

如何优雅的实现Excel导入通用处理流程

目录 1.业务背景2.业务导入流程3.流程优化3.1 模板模式3.1.1 导入处理器接口ImportProcessor3.1.2 抽象父类 AbstractImportProcessor3.1.3 子类实现 ImportDemoProcessor 3.2 工厂模式3.2.1 标识子类的枚举ImportTypeEnum3.2.2 工厂类ProcessorHolder3.2.3 工厂类的调用 4. 特…

纹理贴图必须要输入顶点坐标或纹理坐标吗

最近知识星球的一位同学,面试时被问到:纹理贴图必须要输入顶点坐标或纹理坐标吗? 他一下子被这个问题问蒙了,虽然他知道正确答案是否定的,但是说不上来理由。 这个就引出了文本提到的全屏三角形,它不需要顶点缓冲区,而是利用顶点着色器直接生成所需的顶点坐标和纹理坐标…

【CTS】android CTS测试

android CTS测试 1.硬件准备2. 软件准备3. 下载 CTS3.1 cts3.2 解压 CTS 包&#xff1a; 4 配置adb fastboot5 检查 Java 版本6 安装aapt26.1 下载并安装 Android SDK6.2 找到 aapt2 工具6.3 配置环境变量 7. 准备测试设备8. 运行 CTS 测试8.1 启动 CTS&#xff1a; 9. 查看测试…

DDD架构和微服务初步实现

本次记录的是微服务的初步认识和DDD架构的初步实现和思路&#xff0c;在之前的发布里&#xff0c;对Javaweb进行了一次小总结&#xff0c;还有一些东西&#xff0c;不去详细理解说明了&#xff0c;下面开始我对微服务的理解。 什么是微服务&#xff1f; 在刚刚开始学习的时候…

【让AI写高考AI话题作文】看各大模型的回答

文章目录 命题chatGPT问题的消失&#xff0c;思考的萎缩 通义千问标题&#xff1a;在信息洪流中寻找智慧之光 文心一言探寻未知&#xff0c;拥抱无限的问题 命题 阅读下面的材料&#xff0c;根据要求写作。&#xff08;60分&#xff09; 随着互联网的普及、人工智能的应用&am…

快速锁定Bug!掌握Wireshark等抓包技术,提升测试效率

前言 相信做了测试一段时间的小伙伴都会开始意识到抓包对于测试的重要性&#xff0c;它涉及到功能测试、性能测试、自动化测试、安全测试和数据库测试等等。可以说我们要想做好测试就必须和抓包打交道&#xff0c;脱离抓包的测试是不合格的。人们都说黑客利用Wireshark等抓包工…

未来校园的新质生产力:南京江北新区浦口外国语学校校园网升级改造的启示

作者:南京江北新区浦口外国语学校 校长助理 杨美玲 导语:在南京江北新区(第十三个国家级新区),浦口外国语学校,这所拥有77605平方米宽阔校园、169个班级、7335名学生和511位专任教师的九年一贯制公办外语特色学校,正以前所未有的活力和智慧,迎接信息化时代的挑战。作为学校信息…