首页 > 其他分享 >Test Blog

Test Blog

时间:2024-12-30 21:10:21浏览次数:1  
标签:Plug symbols set vim Blog let airline Test

前言

改用 Vim 之后,发现和命令行打交道的机会变多,使用系统设置的终端慢慢地显得单调。最近还在家里重装了 Win10,要用 VMWare 弄一个 NOI Linux,所以顺手整理了一下鼠的模板 NOI Linux!

不得不说,网上的教程是真的碎,搞的人都快麻了。限于技术,没有图片,将就一下吧(

基本配置

首先改中文。右上角设置找 Region,然后 Manage,找中文。为什么要下 10 多分钟?我爱你 NOI Linux(bushi)。然后时间设置就好搞了。

壁纸用 元芳的清明节海报,头像用 崖子老师的图VSCode 用来当写题之外的工具,配置有点讲究。先更新一发,然后安装中文(简体)、C/C++、vscode-pdf 和 cnblogs 客户端 4 个插件。ctrl-K ctrl-T 改个 Monokai 主题,之后进设置,Auto Save 设成 afterDelay,5 ms;代码字体大小开 20 px,终端字体开 16px;终端放右边(方便以后转回 VSCode);搜 Bracket,关掉括号着色;搜 Sticky Scroll,三种全关掉;搜 Cursor,开启平滑插入动画,紧接着设前后行为 5;最后,重中之重,带 Hints 和 Suggest 的全部关掉,VSCode 启动!

其他的话,下个 Snipaste 截屏,顺手在“启动应用程序”里设置一下 开机自启动。下个 Edge,因为 Firfox 上不了 bilibili,没法 听歌 找资源;Firefox 和 Edge 都要备 Tampermonkey 以及 Hoxx,方便上 CF、AT 等国外 OJ,以及 LOJ。(为什么学校的 Firefox 有 Hoxx 了?为什么家里的没有?)

左侧栏从上往下放:文件、Firefox、Edge、Vim、计算器、VSCode、Sublime(、TeXstudio,这个后面看情况装)。

然后 改下载源,进行软件更新。在 /etc/apt 里开 sudocp 保存旧设置 sources.listsources.list.bak,编辑 sources.list 用下面的覆盖:

deb ____ focal main restricted universe multiverse
deb-src ____ focal main restricted universe multiverse
deb ____ focal-updates main restricted universe multiverse
deb-src ____ focal-updates main restricted universe multiverse
deb ____ focal-backports main restricted universe multiverse
deb-src ____ focal-backports main restricted universe multiverse
deb ____ focal-security main restricted universe multiverse
deb-src ____ focal-security main restricted universe multiverse
deb ____ focal-proposed main restricted universe multiverse
deb-src ____ focal-proposed main restricted universe multiverse

____ 处填 htps://mirrors.ustc.edu.cn/ubuntu/(国防科大源)或 https://mirrors.tuna.tsinghua.edu.cn/ubuntu/(清华源)。推荐用 国防科大源,因为 本土大学 清华源安装 oh-my-bash 可能会寄。

后面的 focal 挺有趣的,好像是说 Ubuntu 每个版本都有个动物做 codename,用来指代 url 之类的。

终端美化

从首选项开始。使用内置方案的 Tango 暗色。很久之前觉得浅色的 Solarized 挺好看的,但是 Vim 在这种主题下颜色比较难受,过了挺长时间才发现问题出在主题上,难绷。

设一下 自定义透明度和颜色,大概叠两层能看清第下面那层的字就行,方便 Vim 和终端同屏 debug。用下面的颜色就行:

#2E3436 #FF2D2D #72CF1B #C4A000 #2879E1 #D26BE3 #08C0C0 #D3D7CF
#555753 #EF2929 #8AE234 #FCE94F #729FCF #EF4040 #34E2E2 #EEEEEC

第二行的亮紫色变成红色是为了修改 Vim 高亮配色,适应带壁纸的半透明主题。

下面就可以安装 oh-my-bash 了。cd 到主目录,先从 Github 上获取项目:

git clone https://github.com/ohmybash/oh-my-bash.git .oh-my-bash

同样 cp 保存 .bashrc.bashrc.bak,接下来从下载项目里面整出新配置:

cp .oh-my-bash/templates/bashrc.osh-template .bashrc

Vim 一下找到 OSH_THEME,后面主题改成 powerline-icon:source % 生效文件,于是就会发现终端乱码了。具体的,至少箭头没了,所以要 sudo apt-get install fonts-powerline 安装一下字体,这比较 trivial。

Vim 美化

说实在的,VSCode 的自动补全吾很不喜欢(虽然光标和 Monokai 的配色好评),Sublime 的高光配色极度好评,但 Vim 永远的神。

首先需要解决 Vim 没有 系统剪切板 的问题,sudo apt-get install vim-gtk 装就完事了,很快。

改完终端的基本配置,Vim 美化已经有了基础。接下来就是整插件,管理器用的是 Plug

curl -fLo .vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

但是直接运行下载 可能会卡死,因为 Github 的 raw.githubusercontent.com 大概率无法连接。这也比较 trivial,终端 ping raw.githubusercontent.com 查询 IP,接着在 /etc/hosts 里面加上 __IP__ raw.githubusercontent.com 即可。

然后在 .vim 里面 mkdir plugged plugin syntax colors doc 就安装完 Plug 了,可以开个 Vim 用 :PlugInstall 测有没有成功。(似乎可以不用?)

打开 .vimrc,上面没有配置这个玩意儿,顺手修了,文末放完整版。先加入这几行:

set ts=3
set shiftwidth=3
set softtabstop=3
set expandtab
set autoindent
set cindent
set nu
set showcmd
set laststatus=2

call plug#begin('~/.vim/plugged')
call plug#end()

分别设置的是 3 格缩进、空格代替 tab、自动缩进、显示行号、显示命令、永久显示状态栏,还有 Plug 插件安装区。(好像 Plug 自带了一个注释延续的功能?爽!)然后一个个安装插件。

rainbow

高亮括号。.vimrc 里往安装区和末尾分别写:

Plug 'luochen1990/rainbow'
let g:rainbow_active = 1   " 设置全局变量,开启 vim-ranbow
let g:rainbow_conf = {     " 设置颜色、匹配对象和特殊情况
   \  'ctermfgs': ['lightblue', 'lightyellow', 'lightgreen', 'lightcyan', 'lightmagenta'],
   \  'parentheses': [['(', ')'], ['\[', '\]'], ['{', '}']],
   \  'separately': {'*': {}, 'nerdtree': 0, }
   \}

不用 GVim,所以没写 'guifgs',两个去掉 'fg' 的也省了,不影响;不想高亮标点符号,于是也删掉了 'operators'。'parentheses' 的配置看不懂,从简了。(谁来教一下 qwq!)只写 cpp,最多写 Bash、Python、Java,花里胡哨的 'separately' 也快清空了,不过由于 后面的 NERDTree 有冲突,保留了 'nerdtree' 选项。

实际上,自动下载远端会挂,手动 git clone 一样的,可以直接 下 zip 安装 解决。进入解压之后的文件夹,pwd 后复制本地路径,把上面 Plug 后面的字符串改成本地路径就可以 :PlugInstall 了。唔,好像 CSDN 有国内镜像可以解决问题?

airline

美化状态栏。配置不熟,需要参考 这篇文章。同样在 .vimrc 里往安装区和末尾分别写:

Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
let g:airline_theme = "wombat"      " 更换 wombat 主题
let g:airline_powerline_fonts = 1   " 支持 Powerline 字体
let g:airline#extensions#tabline#enabled = 1                " buffer 区域美化
let g:airline#extensions#tabline#formatter = 'unique_tail'  " 合并显示路径,类似 VSCode
let g:airline#extensions#tabline#buffer_nr_show = 1         " 显示 buffer 编号
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.branch = ''
let g:airline_symbols.colnr = ' ℅:'
let g:airline_symbols.readonly = ''
let g:airline_symbols.linenr = ' :'
let g:airline_symbols.maxlinenr = '☰ '
let g:airline_symbols.dirty='⚡'

airline 的一堆选项不知道怎么设,只能说 txt 写的说明书真的帅,也真的看不懂,先将就着吧。后面这一团乱码是 PowerLine 字体,可以在解压文件的 /doc/airline.txt 里找,直接从 Github 复制也不是不行。所以,为什么 branch 也挂了(

NERDTree

文件目录。配置不熟,需要参考 这篇文章。应该已经轻车熟路了:

Plug 'preservim/nerdtree'
let g:NERDTreeWinSize = 25    " 设置默认宽度
map <F3> :NERDTreeMirror<CR>  " F3 映射开关
map <F3> :NERDTreeToggle<CR>
autocmd vimenter * NERDTree   " 自动开启、没有文件时开启、只有 NERDTree 时关闭
autocmd vimenter * if !argc()|NERDTree|endif
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
let g:NERDTreeDirArrowExpandable = '▸'    " 设置图标
let g:NERDTreeDirArrowCollapsible = '▾'
let g:NERDTreeShowHidden = 1  " 显示隐藏文件
let NERDTreeMinimalUI = 1     " 其他美化
let NERDTreeDirArrows = 1

“没有文件时开启”这一项看起来有点小丑。有个 'NERDTreeIgnore' 可以用来屏蔽部分文件,没写。进一步的美化先鸽了,加了个 F3 打开目录树的快捷键就跑路。

Surround:

半自动配对。感觉这个比较鸡肋,但是装一个似乎又好用,有点尴尬。但是吾用惯了 Vim 自动缩进,拒绝装 auto-pairs,所以整个 vim-surround 磨合一下:

Plug 'tpope/vim-surround'

现行 .vimrc

现在知道为什么网上搜到的配置文件都好长一个了。

set ts=3
set shiftwidth=3
set softtabstop=3
set expandtab
set autoindent
set cindent
set nu
set showcmd
set laststatus=2

call plug#begin('~/.vim/plugged')
Plug '/home/test/下载/rainbow-master'
Plug '/home/test/下载/vim-airline-master'
Plug '/home/test/下载/vim-airline-themes-master'
Plug '/home/test/下载/nerdtree-master'
Plug '/home/test/下载/vim-surround-master'
call plug#end()

let g:rainbow_active = 1
let g:rainbow_conf = {
   \  'ctermfgs': ['lightblue', 'lightyellow', 'lightgreen', 'lightcyan', 'lightmagenta'],
   \  'parentheses': [['(', ')'], ['\[', '\]'], ['{', '}']],
   \  'separately': {'*': {}, 'nerdtree': 0, }
   \}

let g:airline_theme = "wombat"
let g:airline_powerline_fonts = 1
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#formatter = 'unique_tail'
let g:airline#extensions#tabline#buffer_nr_show = 1
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.branch = ''
let g:airline_symbols.colnr = ' ℅:'
let g:airline_symbols.readonly = ''
let g:airline_symbols.linenr = ' :'
let g:airline_symbols.maxlinenr = '☰ '
let g:airline_symbols.dirty='⚡'

let g:NERDTreeWinSize = 25
map <F3> :NERDTreeMirror<CR>
map <F3> :NERDTreeToggle<CR>
autocmd vimenter * NERDTree
autocmd vimenter * if !argc()|NERDTree|endif
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
let g:NERDTreeDirArrowExpandable = '▸'
let g:NERDTreeDirArrowCollapsible = '▾'
let g:NERDTreeShowHidden = 1
let NERDTreeMinimalUI = 1
let NERDTreeDirArrows = 1

Test Code

/* 年挽红枫,溪傍芦荻。*/

#ifdef DEBUG
#include <iostream>
#include <cmath>
#include <ctime>

bool Mbe;
void _dihan();
#endif

#include <cstdio>

typedef __int128_t i28;
typedef __int64_t i64;
using uit = __uint32_t;
using ull = __uint64_t;

template <typename T>
bool chkmx(T &x, T y) { return x < y ? x = y, true : false; }
template <typename T>
bool chkmn(T &x, T y) { return x > y ? x = y, true : false; }

namespace IO {

#define file(s) freopen(#s".in", "r", stdin), freopen(#s".out", "w", stdout)

}
using namespace IO;

constexpr int N = 2e3 + 5;

namespace Math {

constexpr int P = 1e9 + 7;

#define pls(x, y) (x += (y)) < P || (x -= P)
#define dec(x, y) (x -= (y)) < 0 && (x += P)

struct Modulo {
   i64 _P, _M;
   Modulo() = default;
   Modulo(i64 p) :
      _P(p), _M(((i28){1} << 64) / _P)
   {}

   int operator ()(i64 x) {
      x -= ((i28){x} * _M >> 64) * _P;

      x >= _P && (x -= _P, 1);
      x <  0  && (x += _P, 1);

      return x;
   }
} mod(P), _mod;

#define mul(x, y) x = mod(1ll * x * (y))

}
using namespace Math;

int n, a[N];
int f[N][N][3], g[N], h[N];

void work() {
   for (int i = 1; i <= n; ++i)
      scanf("%d", a + i);

   for (int i = 1; i <= n; ++i)
      f[0][i][2] = i, f[0][i][1] = 1;

   for (int i = 1; i < n - 1; ++i) {
      for (int j = 1; j <= n; ++j) {
         g[j] = g[j - 1], h[j] = h[j - 1];

         pls(g[j], mod(1ll * f[i - 1][j][0] * (j - 1) * (j - 1)));
         pls(g[j], mod(1ll * f[i - 1][j][1] * (j - 1)));
         pls(g[j], f[i - 1][j][2]);
                                 
         pls(h[j], f[i - 1][j][0]);
      }

      for (int j = 1; j <= n; ++j) {
         f[i][j][0] = f[i][j][1] = f[i][j][2] = 0;

         pls(f[i][j][2], g[j - 1]);
         pls(f[i][j][1], f[i - 1][j][2]);
         pls(f[i][j][0], f[i - 1][j][1]);

         pls(f[i][j][2], mod(1ll * f[i - 1][j][0] * (j - 1) * (j - 1)));
         pls(f[i][j][2], mod(1ll * f[i - 1][j][1] * (j - 1)));
         pls(f[i][j][2], f[i - 1][j][2]);

         int cur = h[n]; dec(cur, h[j]);

         pls(f[i][j][2], mod(1ll * cur * j * j));
         pls(f[i][j][1], mod(1ll * cur * j));
         pls(f[i][j][0], cur);

         mul(f[i][j][0], a[j]);
         mul(f[i][j][1], a[j]);
         mul(f[i][j][2], a[j]);
      }
   }

   int res = 0;

   for (int i = 1; i <= n; ++i) {
      pls(res, mod(1ll * f[n - 2][i][0] * (i - 1) * (i - 1)));
      pls(res, mod(1ll * f[n - 2][i][1] * (i - 1)));
      pls(res, f[n - 2][i][2]);
   }

   printf("%d\n", res);
}

int main() {
#ifdef DEBUG
   file(cur);
#endif

   while (~scanf("%d", &n))
      work();

#ifdef DEBUG
   _dihan();
#endif
   return 0;
}

#ifdef DEBUG
bool Med;
void _dihan() {
   std::cerr << "Memory: " << abs(&Med - &Mbe) / 1048576.0 << " MB\n";
   std::cerr << "Time: " << 1e3 * clock() / CLOCKS_PER_SEC << " ms\n";
}
#endif

标签:Plug,symbols,set,vim,Blog,let,airline,Test
From: https://www.cnblogs.com/NianFeng/p/18642424

相关文章

  • AtCoder Beginner Contest 386 赛后总结
    赛时A-D。菜。A-C模拟即可。D先检查一下竖着的一列有没有出现:白黑或者黑白黑的情况。有的话一定不行。因为每个白点的右下角一定都得是白的,就相当于对下面的行数取后缀最小值,这个可以使用差分实现。点击查看代码#include<bits/stdc++.h>#definelllonglong#def......
  • 基于人工智能驱动的无代码自动化测试平台:testRigor!
    1、testRigor介绍简单来说,testRigor是一款基于人工智能驱动的无代码自动化测试平台,它能够通过分析应用的行为模式,智能地生成测试用例,并自动执行这些测试,无需人工编写测试脚本。可以用于Web、移动、API和本机桌面应用程序的测试。允许用户从最终用户的角度创建端到端测试,从而消除......
  • 搬运优秀随笔:https://www.cnblogs.com/gaoshidong
    一、第一章:初识Java与面向对象程序设计Java简介:Java是一种面向对象的程序设计语言,具有跨平台、安全性高、可移植性强等特点。面向对象程序设计概述:面向对象是一种程序设计思想,将现实世界的事物抽象为对象,通过对象之间的交互来完成程序的功能。Java开发环境搭建:介绍了Java......
  • [题解](更新中)AtCoder Beginner Contest 386(ABC386) A~E
    A-FullHouse2容易发现,答案为Yes\(\iff\)输入中恰好出现了\(2\)种不同的数,可以用set等数据结构来计算不同元素的个数。点击查看代码#include<bits/stdc++.h>usingnamespacestd;set<int>se;signedmain(){ for(inti=1,a;i<=4;i++){ cin>>a; se.insert(a); } c......
  • Blog3
    前言:Java语言程序设计的学习将告一段落,现在在此对最后这段时间的练习在知识点,题量,难度等情况进行个人总结:(1)家居强电电路模拟程序3题目:模拟复杂电路,涉及串联和并联电路的模拟,需要处理电阻、电压分布和设备状态的综合管理。线路中包含多个串联起来的并联电路。题量:新增器件互斥......
  • java-BLOG-3
    一.前言:期末测验:本次测验主要是关于谷仓的体积的计算,一个是长方体,一个是圆柱体,比较两个体积的大小。第一个题目是算这两个体积的大小,第二个题目加上了圆锥体,第三个题目是从小到大排序这三个体积,并按需输出这三个体积。本次测验计算过程是不难的,主要是要注意给出的材料长度是不同......
  • 题目集7~8的总结性Blog
    一.前言本次模拟系统设计是对前两次家居电路模拟的深度扩展。在第一版中,我们搭建了基础的电路连接模型,实现了开关、灯具等基本设备的状态控制与电流流动的模拟。在第二版中,我们引入了调速器、互斥开关等更复杂的控制设备,以及对串联、并联电路逻辑的处理。随着系统复杂度的提升,我......
  • Blog3
    (1)前言在完成题目集7-1(家居强电电路模拟程序-3和-4)的过程中,我深入理解了智能家居设备的控制逻辑、电路原理及其编程实现。这些题目集主要考察了对电路元件的理解与应用、面向对象编程的设计模式以及处理复杂输入输出的能力。知识点题目集7-1-3:此题要求设计一个智能家居强电电路......
  • Blog-3 题目集7~8的总结
    22207203-陈思思一、前言(一)第7次题目集(家居强电电路模拟程序-3)知识点:串联电路:电流相同,电压分配。并联电路:电压相同,电流分配。类的设计:电路设备类、受控设备类、控制设备类、串联电路类、并联电路类。数据结构:使用列表或字典存储电路信息、设备状态。算法:递归或迭代计算电......
  • BLOG-3
    第七次大作业家居强电电路模拟程序-3题目分析题目要求设计一个智能家居强电电路模拟系统,涉及到多种控制设备和受控设备,并且需要处理串联和并联电路的连接关系。更新了电路本次相较于上次新增了互斥开关互斥开关有3个引脚:1个是汇总引脚,另两个是分支引脚。开关电路示意图如......