NOI_Linux

干货向。。。

0x01 基础使用

Ctrl+Alt+T 召唤终端。

新建文件的指令是 touch+文件名

time ./code 可以在运行的同时显示运行所需的时间。

请注意,这个功能只能在 Linux 下使用。

而且要注意 Linux 下有特殊意义的不是 \ 而是 /

0x02 VSCode 的使用技巧

现在给一些在英文环境下使用 VSC 的指北。

  1. 预先配置:

    左下角有一个设置按钮,点开,第二行的 Settings。

    然后点第一行 Text Editor,再点第三行 Font,选择 Font Size,选择至合适大小(这里在 Windows 下 30 比较合适)。(直接搜索 font size)

    然后是 Text Editor 下倒数第三行的 Minimap,Maxcolumn 调整为 240(差不多罢),然后下面的 Scale 调整为 3。(直接搜索 minimap,maxcolumn,scale)

    然后右下角空格缩进 4 改为 2。(设置的时候直接搜 Tab size 然后把 4 改成 2。)

    大概可以了,在 NOI Linux 的环境下应该可以较为正常的使用了。

  2. 基础快捷键:

    然后 VSC 里撤销是 Ctrl+Z,恢复上一步操作是 Ctrl+Shift+Z

    VSCode 里 shift+{ 可以把选中的内容套上大括号,小括号同理,方括号不行。

    Ctrl+{ 可以减去区域的整体缩进,Ctrl+} 可以增加区域的整体缩进。

  3. 终端打开:

    有两种方法,一种是 Ctrl+~ 可以打开 VSC 内的一个控制系统的终端,不好的地方在于需要 cd 文件夹,除非考场上直接把选手文件夹建在主文件夹,这个东西有一点费事。

    还有一种是直接 Ctrl+Shift+C,直接打开一个文件下的终端,比较爽(很可惜 Linux 下没法使用)。

  4. 行内操作:

    删除当前行:Ctrl+Shift+K

    移动当前行:Alt+Up/Down

    复制粘贴行:Ctrl+C Ctrl+V,注意这个真的会覆盖剪切板。

    剪切一行:Ctrl+X

    跳到指定行:Ctrl+G,如果用鼠标的话当我没说,想用这个快速换行可以实时调整(?)。

    在上面插入一行:Ctrl+Shift+Enter

    在下面插入一行:Ctrl+Enter

    折叠行:Ctrl+Shift+{

    展开行:Ctrl+Shift+}

    自动换行:Alt+Z,不会真的换行,只是更改显示。

  5. 编辑器视图相关:

    关闭当前视图:Ctrl+W

    拆分视图:Ctrl+\,向左拆分的,好像用处不大。

    切换编辑器视图:Alt+数字

    切换组:Ctrl+数字

    切换视图的水平/垂直布局:Shift+Alt+0

    放大和缩小:Ctrl+ +/-

  6. 查找搜索相关:

    替换:Ctrl+H,退出的话点 Esc

    查找下一个:F3

    查找上一个:Shift+F3

    切换区分使用大小写:Alt+C

  7. 选择:

    一般选择:Shift+U/D/L/R

    选择单词:Ctrl+Shift+Left/Right

    选择整行:Alt+Shift+Right+Right

    删除单词:Ctrl+Backspace

    删除当前行中光标后的东西:Ctrl+Del

    选中所有相同的匹配项:Ctrl+F2

    选择后复制到行上:Shift+Alt+Up

    选择后复制到行下:Shift+Alt+Down

    退回到上一个光标的位置:Ctrl+U

    很可惜没有找到使用键盘快速移动光标的方法(想要至少能赶上鼠标滚轮的速度/kk,不然使用 Ctrl+G 实际上还是有一点鸡肋)。

0x03 gdb 的相关使用

然后再补充一些指令,以及 gdb 的使用。

gdb 最强大的地方在于可以快速找到段错误(除 0,数组越界,爆栈等),我们可以直接在 gdb 下运行,然后就可以直接给你返回出错的地方。

然后还有一些它的调试功能。

在编译时使用该指令:

g++ -g code.cpp -o code -Wall

然后我们在调试的时候这样:

gdb code

这样我们就能进入 gdb 的调试。

r 可以直接运行。如果想要干大事,可以 start,从 main 函数的第一行开始执行,然后不断地 n (执行下一行)即可。disp ans 可以一直显示 ans 的值,方便调试。

s 可以进入函数内部。

b 可以设置断点,还有一些附加比如:

b 34 if i==4

在 i==4 的时候断点才会起作用。

d 可以删除所有断点。

当然有的时候也需要在调试时使用 s,表示执行时进入函数内部,看内部的使用。

u 会执行当前行直到当前行对应的循环结束。

finish 运行到当前函数结束,如果有返回值,会输出返回值。

return 强行 return,可以返回指定的值。

p x=4,将此时的 x 赋值 4。

l 可以显示代码。l,r 显示区间代码,l 显示 l 附近的 10 行代码。

q 可以退出调试。

还有一个东西叫做 Ctrl+C

0x04 Windows 下实现指令编译(主要是为了适应 Windows 下的 VSC 编程并且避免使用其插件)

一些比较神奇的东西。。。在 Windows 下装 MinGW 其实完全不需要重新下载,只要找到 Dev-Cpp 的路径,然后把里面 MinGW 的 bin 路径赋值到系统变量 path 里就完事了。。。弄了半天。。。

学校 hwc 机房里的 MinGW 居然是 1999 年的令我大为震撼,这时指令只可以使用 gcc

然后 Win7 的路径修改还和 Win10 不太相同,其实就是多一个 ; 隔开每一条路径而已。

另外,一定注意编译的路径是英文的,千万不能有中文符号,否则编译一次真的可以爽上一年。

0x05 Windows 日常操作指北

打开文件资源管理器:Win+R explorer.exe,然后上下键或者直接键入首字母都是可以的。

退回上一级文件:Alt+Left,下一级就是 Alt+Right

删除文件可以直接 Del

重命名文件可以直接 F2(不知道这玩意曾经把我累死过一次。。。)。

反正能少用不少次鼠标/ts。