指令速记

Tmux相关

语法

新建窗口:

tmux new -s <session-name>

分离窗口:

tmux detach

列出所有会话:

tmux ls

接入会话:

# 使用会话编号
$ tmux attach -t 0

杀死会话:

# 使用会话编号
tmux kill-session -t 0

# 使用会话名称
tmux kill-session -t <session-name>

切换会话:

# 使用会话编号
tmux switch -t 0

# 使用会话名称
tmux switch -t <session-name>

重命名会话:

tmux rename-session -t 0 <new-name>

Screen 相关:

语法:

screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s ][-S <作业名称>]

参数说明

-A  将所有的视窗都调整为目前终端机的大小。
-d <作业名称>  将指定的screen作业离线。
-h <行数>  指定视窗的缓冲区行数。
-m  即使目前已在作业中的screen作业,仍强制建立新的screen作业。
-r <作业名称>  恢复离线的screen作业。
-R  先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-s  指定建立新视窗时,所要执行的shell。
-S <作业名称>  指定screen作业的名称。
-v  显示版本信息。
-x  恢复之前离线的screen作业。
-ls或--list  显示目前所有的screen作业。
-wipe  检查目前所有的screen作业,并删除已经无法使用的screen作业。

常用screen参数

screen -S yourname -> 新建一个叫yourname的session
screen -ls -> 列出当前所有的session
screen -r yourname -> 回到yourname这个session
screen -d yourname -> 远程detach某个session
screen -d -r yourname -> 结束当前session并回到yourname这个session

Godot ImGui相关

创建子窗口

# 设置子窗口大小. 设置为0似乎会导致自适应缩放?
var child_size = Vector2(200, 100)

# 开始子窗口
ImGui.BeginChild("子窗口ID", child_size, true, ImGui.WindowFlags.None)
ImGui.Text("这是子窗口的内容") # 其他内容...
ImGui.EndChild()

可折叠标题

if ImGui.CollapsingHeader("可折叠的子窗口", ImGui.TreeNodeFlags_DefaultOpen):
    ImGui.Text("这是子窗口的内容")
    ImGui.Button("示例按钮")
# 其他内容...

ChildFlags (子窗口标志)

这些标志用于控制子窗口(使用 BeginChild()/EndChild() 创建的窗口)的行为:

基本标志

  • ChildFlags_None (0) - 默认行为,无特殊标志
  • ChildFlags_Borders (1) - 显示边框
  • ChildFlags_AlwaysUseWindowPadding (2) - 总是使用窗口内边距

大小调整控制

  • ChildFlags_ResizeX (4) - 允许水平调整大小
  • ChildFlags_ResizeY (8) - 允许垂直调整大小
  • ChildFlags_AutoResizeX (16) - 自动调整水平大小以适应内容
  • ChildFlags_AutoResizeY (32) - 自动调整垂直大小以适应内容
  • ChildFlags_AlwaysAutoResize (64) - 自动调整大小以适应内容(等同于同时设置AutoResizeX和AutoResizeY)

其他

  • ChildFlags_FrameStyle (128) - 使用框架样式而不是窗口样式
  • ChildFlags_NavFlattened (256) - 在导航中扁平化(子窗口内容被视为父窗口的一部分)

WindowFlags (窗口标志)

这些标志用于控制常规窗口(使用 Begin()/End() 创建的窗口)的行为:

窗口装饰控制

  • WindowFlags_NoTitleBar (1) - 无标题栏
  • WindowFlags_NoResize (2) - 不可调整大小
  • WindowFlags_NoMove (4) - 不可移动
  • WindowFlags_NoCollapse (32) - 不可折叠
  • WindowFlags_NoDecoration (43) - 无任何装饰(等同于 NoTitleBar | NoResize | NoMove | NoCollapse)

滚动条控制

  • WindowFlags_NoScrollbar (8) - 无滚动条
  • WindowFlags_NoScrollWithMouse (16) - 不能用鼠标滚轮滚动
  • WindowFlags_AlwaysVerticalScrollbar (16384) - 总是显示垂直滚动条
  • WindowFlags_AlwaysHorizontalScrollbar (32768) - 总是显示水平滚动条
  • WindowFlags_HorizontalScrollbar (2048) - 显示水平滚动条

自动调整

  • WindowFlags_AlwaysAutoResize (64) - 自动调整窗口大小以适应内容

背景与输入控制

  • WindowFlags_NoBackground (128) - 无背景
  • WindowFlags_NoMouseInputs (512) - 不接受鼠标输入
  • WindowFlags_NoNavInputs (65536) - 不接受导航输入
  • WindowFlags_NoNavFocus (131072) - 不接受导航焦点
  • WindowFlags_NoInputs (197120) - 不接受任何输入(等同于 NoMouseInputs | NoNavInputs | NoNavFocus)

特殊窗口类型

  • WindowFlags_MenuBar (1024) - 有菜单栏
  • WindowFlags_ChildWindow (16777216) - 子窗口(内部使用)
  • WindowFlags_Tooltip (33554432) - 工具提示窗口
  • WindowFlags_Popup (67108864) - 弹出窗口
  • WindowFlags_Modal (134217728) - 模态窗口
  • WindowFlags_ChildMenu (268435456) - 子菜单(内部使用)

其他

  • WindowFlags_NoSavedSettings (256) - 不保存设置到ini文件
  • WindowFlags_NoFocusOnAppearing (4096) - 出现时不获取焦点
  • WindowFlags_NoBringToFrontOnFocus (8192) - 获取焦点时不提到前面
  • WindowFlags_UnsavedDocument (262144) - 显示未保存标记(带*)
  • WindowFlags_NoDocking (524288) - 禁止停靠

VCPKG初次安装:

The repository containing vcpkg recipes cannot legally be included, so you
will have to manually clone it to the $HOME/.local/share/vcpkg directory.

  git clone https://github.com/microsoft/vcpkg $VCPKG_ROOT

You are also responsible for manually updating this repository.

  git -C $VCPKG_ROOT pull

For CMake to recognize libraries provided by vcpkg, the above repository
includes a CMake module, which can be found at:

  $VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake

This file can be copied to your CMake project directory and included in
CMakeLists.txt via include(vcpkg).

Alternatively, you can pass the following to CMake when configuring:

  -D CMAKE_TOOLCHAIN_FILE=$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake