UserGuide-i3wm默认绑定简明说明
本文为i3wm官方文档翻译
参考:https://i3wm.org/docs/userguide.html
转载自 简书 Distortion_3022
原文:https://www.jianshu.com/p/b9b644cf528f
1. 默认键位
以下图片是默认热键。
与$mod(Alt)一起按:
Alt
与Shift+$mod一起按:
Alt+Shift
红色按键是你需要按的修饰键(默认配置),蓝色按键是盲打键位。
要注意的是,若是没有配置文件就启动i3,i3-config-wizard 会帮助你创建一个配置文件,键位位置会跟上图所示一样,不管你是什么键盘布局。
如果你喜欢上图的设置,可以拒绝 i3-config-wizard的引导,默认以 etc/i3/config 作为配置文件
2. 使用i3
贯穿整个使用文档,关键字$mod将当作已配置好的修饰键,修饰键默认为Alt键(Mod1),windows(Mod4)键也是一个受欢迎的替换方案
2.1 打开虚拟终端和移动位置
打开一个新的虚拟终端是非常简单的操作,默认情况下,这个操作的组合键是 mod+Enter,将会打开一个新的虚拟终端,它将占满你屏幕的所有空间。
如果你现在打开另一个虚拟终端,i3会把屏幕空间一分为二,各占一半。新创建的窗口会被i3放在已有窗口的旁边(宽屏)或者下面(竖屏)
要在两个终端之间移动焦点,你可以使用vi编辑器风格的方向键。然而,在i3里,盲打键位就是方向键(vi编辑器里的方向键为了兼容大多数键盘布局,都向左移动了一个键位)。因此,mod+k是向上,mod+;是向右。像上图的情况,用mod+l在两个终端之间切换。当然,你也可以使用箭头方向键。
现在,你的workspace是按特定方向(默认水平方向)划分(容器里包含两个终端)。你可把每个window都再分离一次(水平或者垂直),就像workspace一样。“window”指一个容器包含一个X11窗口(如一个浏览器或者一个终端),“split container”指的是容器包含一个或多个窗口。
TODO:picture of the tree
垂直分割窗口,在创建新窗口前按mod+h。
2.2 改变容器布局
一个split container 可以设置成下面所列出的布局之一。
splith/splitv
容器里的每个窗口都获得等量大小的空间。splith 控制每个窗口在彼此的左右方。splitv 控制每个窗口在彼此的上下方。
stacking
容器里只显示一个正在活动的窗口。在容器上方得到一个窗口的列表。
tabbed
与stacking是一个原理,不过tabbed的窗口列表是单行显示的标签页。
切换模式:mod+s打开stacking,$mod+w打开tabbed
2.3 把一个窗口切换到全屏模式
把一个窗口全屏显示或者退出全屏,按 $mod+f。
在i3里还有全局全屏模式,那么这个窗口将占据所有的显示输出(多屏显示)(配置命令: fullscrren toggle global)
2.4 打开其他应用程序
除了通过终端打开应用程序,你也可以使用dmenu来打开程序,默认情况下通过PATH中才能正常打开。
另外,如果你有一个需要经常打开的应用,你可以创建一个组合键来直接打开它,细节请看 配置 部分.
2.5 关闭窗口
如果一个程序未提供一个关闭的机制(很多程序都提供了一个关闭方案,Esc键或者一个快捷键,比如Ctrl+w),你可以按$mod+Shift+q 来杀掉这个窗口。对于支持 WM_DELETE 协议的应用程序,它将正确地关闭(保存任何修改或进行其他清理)。如果程序不支持 WM_DELETE 协议。X server 将杀掉这个程序并且之后的动作取决与此程序。
2.6 使用workspaces
使用工作空间是分组归类一堆窗口的好方法。默认情况下,你处在第一个workspace,就像i3bar左下角所指示的一样。要切换到其他workspace,按下$mod+数字键(你要切换到的workspace的数字)。如果工作空间不存在,它将被创建。
一个常见的例子是把网页浏览器放在第一workspace,聊天工具放在另一个workspace,还有另一个你运行的其他软件放在第三个workspace。当然,你可以不必照着做。
如果你拥有多个显示屏,在启动时将会在每个屏幕创建一个workspace。如果你打开一个新的workspace,他会绑定到你正在工作的显示屏。当你切换一个在其他 显示屏的workspace时,i3会把焦点设置到那个显示屏。
2.7 移动一个window到另一个workspace
移动一个窗口到另一个工作空间,按$mod+Shift+目标工作区数字。跟切换workspaces时一样的情况,如果目标工作空间不存在,它将被创建。
2.8 调整窗口大小
调整容器大小最简单的办法是用鼠标:拖拽边框到想要的大小。
你也可以定义快捷键来调整,可以看看这个例子,default config–由i3提供
2.9 重启i3
为了重启i3你可以使用$mod+Shift+r(例如当有一个bug时,恢复到正常状态,或者升级到一个新版本i3)。
2.10 退出i3
不关掉Xserver且利落地退出i3,你可以按$mod+shift+e。通常,会有一个对话向你确认是否退出。
2.11 浮动模式
浮动模式是相对于平铺模式的。窗口的位置和大小不是由i3自动管理的,而是由你手工调整。使用这个模式有违于平铺模式,但是他对一些案例如"Save as"对话窗口,或者toolbar窗口(GIMP或类似的)是有用的。这些窗口通常会设置恰当的提示和默认情况下被打开于浮动模式。
你可以通过按$mod+Shift+space来切换一个窗口的浮动模式。通过鼠标拖动标题栏,你可以移动这个窗口,通过拖动边框,你可以调整窗口大小。你也可以通过使用floating_modifier来操作。另一个调整浮动窗口大小的方法是鼠标右击标题栏并且拖拽。
关于用键盘来调整浮动窗口的大小,请看调整大小的绑定模式,由i3提供
default config
浮动窗口一直处于平铺窗口的上方
3 .树
i3保存着所有关于 X11 output 的数据,workspace和窗口布局在里面是树形图的结构。根节点是X11根窗口,随后是X11 putputs,然后是 dock areas 和一个 content container,随后是workspace,最后是window本身。在旧版本的i3,每个workspace有多个list和table,这个方法的结果是难以使用(真的难),理解和实现。
3.1 树是由容器组成的
我们把树的组件叫做Containers。一个容器可以掌控一个窗口(意思是一个X11 window,你可以真正看到的,使用的,比如说一个浏览器)。另外,Containers可以再包含一个或者多个Containers。一个简单的workspace例子是:当你在单个显示器打开i3时,只有一个workspace,你这时打开了两个终端,你最后得到的树是:
3.2 定位和Split Containers
当以树作为数据结构时,为了构建一个布局,使用所谓的 Split Containers 是很正常的。在i3里,每个容器都有属于自己的方位(水平,垂直,或者未指定),并且定位取决于上一级容器的布局(垂直的有splitev和stacking,水平的有splith和tabbed)。所以我们以一个workspace作为例子,workspace 容器的默认布局是splith(如今很多显示器是宽屏的)。如果你把布局切换成splitv(默认情况下按$mod+v)然后打开两个终端,i3会把你的窗口设置成这个样子:
从version 4开始,i3多了一个有趣的新特性,它能够分割任何东西:让我们假设你现在在workspace里打开了两个终端(以splith布局打开,也就是水平定位)焦点处于右边的终端,现在你想要要在当前终端下面打开另外一个终端。如果你直接打开新终端,它会被放在最右边而不是下面。解决办法是按 $mod+v用splitv布局来分割容器(要打开Horizontal Split Container,用$mod+h)。现在你可以在当前终端下面打开一个新终端了:
你可能已经猜到了:它能够无限分割到下一层。
3.3 聚焦于父容器
$mod+a
我们继续以上图为例。我们在左边有一个终端,右边有两个垂直分布的终端,焦点处在右下角的终端。当你又打开一个新终端,他会被放在右下角终端的下面。
所以说,要怎么把新终端放到右边而不是下面呢,答案是使用focus parent,它会把焦点转移到当前容器的父容器。在这种情况下,你会把焦点放在水平方向的workspace里的vertical split Container。因此,新窗口会被打开在Vertical Split Container的右边:
3.4 隐式容器
在一些情况下,i3需要隐式地创建一个容器来完成你的命令。
一个例子如下:你在单个显示器启用i3,在单个workspace打开3个终端。workspace节点在i3的layout tree里,这些终端窗口直属于workspace节点。默认workspace节点的方向设置是水平的。
现在你往下移动其中一个终端($mod+Shift+k by default)。那么workspace节点会被设置成垂直布局,你移动的这个终端就会出现在屏幕的下面并且直属于workspace。一个新的容器被创建,用于容纳另外两个终端。当你切换到tabbed模式,你会注意到这个情况。你最终会得到一个有标签页容器,里面有两个窗口(比如 “H[urxvt firefox]”),还有一个你刚才移动到下面的终端窗口。
4 配置i3
到这里,真正有趣的事情才刚刚开始;-)。很多东西都非常依赖于你样要的工作环境,所以我们无法提供一个默认的且合理的配置。
虽然没有使用编程语言来进行配置,i3在你希望让窗口管理器怎么做的方面依然保持着灵活的特性。
例如,你可以配置一个绑定用来跳到指定的窗口,可以设置打开指定的应用程序到指定的workspace,可以自动启动某个程序,可以改变i3的配色,还可以设置快捷键来做一些有用的事情。
要改变i3的配置,复制 /etc/i3/config 到 /.i3/config并且用一个文本编辑器来编辑它(或者是复制到/.config/i3/config,如果你喜欢XDG目录方案)
第一次启动i3时,i3会引导你创建一个配置文件,你可以告诉向导程序在配置文件里设置Alt(Mod1)或windows(Mod4)键作为辅助按键。当然,创建的配置文件会使用你当前键盘布局的键盘符号。要启动向导程序,请在终端输入命令i3-config-wizard。
请确认你当前并没有~/.i3/config/。否则向导程序将会退出。
4.1 备注
在配置文件里使用备注是可行的和推荐的,为了以后参考或修改,适当地记录你的配置。备注以#开始,而且只能用在每行的开头:
例子
# This is a comment
4.2 字体
i3支持以 X core字体和 FreeType 字体来渲染窗口标题
你可以使用xfontsel(1) 生成一个 X core字体类型。你需要使用一个支持ISO-10646编码的字体来显示特殊字符(Unicode)。
一个FreeType字体类型是由一个字体系列,风格,粗细,便提,伸延组成的,FreeType字体支持从右到左的渲染和往往比 X core字体支持更多的Unicode符号。
如果i3不能打开配置好的字体,i3会吧错误输出到日志文件,退回到可以工作的字体
语法:
font <X core font description>
font pango:<family list> [<style options>] <size>
例子:
font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
font pango:DejaVu Sans Mono 10
font pango:DejaVu Sans Mono, Terminus Bold Semi-Condensed 11
font pango:Terminus 11px
4.3 键盘绑定
一个键盘绑定会让i3在按下特定的按键后执行一个命令。i3允许以keycode或keysym绑定(你可已随便更改绑定,虽然i3并不会帮你解决键位冲突)
Keysym(key symbol)是指键盘上的符号。像是"A"或者"B",但是像是那些奇怪的"underscore"而不是"_"。这些符号是你们用Xmodmap重新映射的按键。要获得当前键盘的映射,使用命令 xmodmap -pke 。要以交互方式输入一个按键,查看它是被设置成什么keysym,使用命令 xev 。
Keycode 不需要拥有一个已赋值符号(方便某些笔记本热键),而且他们即使在你换了键盘布局后,也不会改变keycode本身(当使用xmodmap)。
我的建议是:如果你经常更换键盘布局,但是不想改变绑定键位的物理位置,使用keycodes。如果你不改变键盘布局,而且想要一个简单干净的配置文件,使用keysyms。
某些工具(例如import或者xdotool)可能无法运行在一些KeyPress事件,因为键盘/指针被占用了。针对这些情况,可以使用 --release 标记,这将在按键被松开后执行命令。
语法:
bindsym [--release] [<Group>+][<Modifiers>+]<keysym> command
bindcode [--release] [<Group>+][<Modifiers>+]<keycode> command
例子:
# Fullscreen
bindsym $mod+f fullscreen toggle# Restart
bindsym $mod+Shift+r restart# Notebook-specific hotkeys
bindcode 214 exec --no-startup-id /home/michael/toggle_beamer.sh# Simulate ctrl+v upon pressing $mod+x
bindsym --release $mod+x exec --no-startup-id xdotool key --clearmodifiers ctrl+v# Take a screenshot upon pressing $mod+x (select an area)
bindsym --release $mod+x exec --no-startup-id import /tmp/latest-screenshot.png
可以使用的修饰键:
Mod1-mod5,Shift,Control
默认修饰请看 xmodmap(1)
Group1, Group2, Group3, Group4
当使用多个键盘布局(例如setxkbmap -layout us,ru)时,您可以指定哪个XKB组(也称为“布局”)键盘绑定应处于活动状态。默认的,键盘绑定会被转换成Group1并且活跃在所有键盘布局。如果你想为其中一个键盘布局重写键盘绑定,指定到相应的group。为了向后兼容,“Mode_switch” 是Group2的别名。
4.4 鼠标绑定
在容器范围内按下一个已经绑定的鼠标按键,i3将会执行一个命令。你可以用绑定键盘的方法设置鼠标绑定。
语法:
bindsym [--release] [--border] [--whole-window] [<Modifiers>+]button<n> command
默认的,绑定只会在点击到标题栏的时候运行。如果添加了–release标记,它会在按键松开时运行。
如果添加了–whole-window标记,绑定会在你点击到窗口任何一个部位时运行,但是边框除外。为了让一个绑定在点击到边框时运行,指定一个–border标记。
例子:# The middle button over a titlebar kills the window
bindsym --release button2 kill# The middle button and a modifer over any part of the window kills the window
bindsym --whole-window $mod+button2 kill# The right button toggles floating
bindsym button3 floating toggle
bindsym $mod+button3 floating toggle# The side buttons move the window around
bindsym button9 move left
bindsym button8 move right
绑定模式
你可以拥有多套键位绑定模式,当你切换到其他绑定模式的时候,所有当前键位绑定会被释放,并且只有你新切换的绑定模式生效。唯一的预设的绑定模式是defalut的,他伴随i3的启动,并且没有定义任何指定的绑定模式。
使用绑定模式有以下两部分组成:定义一个绑定模式和切换到它。为了做到这个,需要一个配置指令和一个命令,他们被称为mode。配置指令被用来定义一组绑定并且把它放到一个绑定模式,而命令是用来切换到一个绑定模式。
建议与[variables]组合使用绑定模式,以便维护更容易。以下是一个简单案例
请注意定义一个退回默认模式的绑定键
注意,可以使用[pango_markup]来设置绑定模式, 但是你需要通过添加 --pango_markup标记给定义模式来明确地开启它。
语法
# config directive
mode [--pango_markup] <name># command
mode <name>
例子# Press $mod+o followed by either f, t, Esc or Return to launch firefox,
# thunderbird or return to the default mode, respectively.
set $mode_launcher Launch: [f]irefox [t]hunderbird
bindsym $mod+o mode "$mode_launcher"mode "$mode_launcher" {bindsym f exec firefoxbindsym t exec thunderbirdbindsym Esc mode "default"bindsym Return mode "default"
}
4.6 浮动调节
移动浮动窗口。你可以选择其中一个方式,1拖动标题栏,2配置可以通过按键和鼠标点击窗口来移动窗口的浮动调节器。最常见的设置是用与管理窗口相同的按键(例如Mod1)。也就是说,你可以按住Mod1,同时鼠标左键点击拖动动窗口到你想要的方位。
当你按住浮动调节器时(Mod1),你可以通过按住鼠标右键并拖动,来调整那一个窗口的大小。如果你同时按住了Shift键,窗口将会按比例缩放(宽高比会保留)。
语法
floating_modifier <Modifier>
例子
floating_modifier Mod1
4.7 限制浮动窗口的大小
浮动窗口的最大最小面积可以被指定。如果其中的floating_maximum_size被指定为-1,那么对于窗口的最大值将不会被约束。如果其中的floating_maximum_size为定义,或者被制定为0,i3会使用默认值来限制窗口最大值。floating_minimum_size的处理方法一定程度上与floating_maximum_size的相同。
语法
floating_minimum_size <width> x <height>
floating_maximum_size <width> x <height>
例子
floating_minimum_size 75 x 50
floating_maximum_size -1 x -1
4.8 工作区的定位
新工作区有一个默认合适的定位:宽屏用水平定位,竖屏用垂直定位。
你可以重写default_orientation的行为
语法
default_orientation horizontal|vertical|auto
例子
default_orientation vertical
4.9 新容器的布局模式
这个选项决定了工作区级别的容器该用什么布局模式
语法
workspace_layout default|stacking|tabbed
例子
workspace_layout tabbed
4.10 新窗口的边框风格
此选项决定新窗口拥有什么样的边框风格。默认是normal。注意,new_float 仅应用于作为浮动窗口呼出的窗口。例如对话窗口,而不是到后来才被设置成浮动窗口的窗口。
语法
new_window normal|none|pixel
new_window normal|pixel <px>
new_float normal|none|pixel
new_float normal|pixel <px>
例子
new_window pixel
“normal” 和 “pixel” 边框风格支持设置边框像素大小的可选项。
例子
# The same as new_window none
new_window pixel 0# A 3 px border
new_window pixel 3
4.11 隐藏靠近屏幕边缘的边框
你可以使用hide_edge_borders来隐藏与屏幕边缘靠近的边框。如果你使用滚动条的话这很有用,或者不想浪费甚至两像素的显示空间。"smart"选项是在工作区内只有一个可见窗口时才隐藏边框,而在工作去内有多个窗口,他不会隐藏边框。
语法
hide_edge_borders none|vertical|horizontal|both|smart
例子
hide_edge_borders vertical
4.12 指定窗口的任意命令(for window)
使用for_window指令,当i3碰到特定的窗口,你可以让i3执行任何命令。它可以用在让窗口浮动,改变他们的边框的方面,等。
语法
for_window <criteria> <command>
例子
# enable floating mode for all XTerm windows
for_window [class="XTerm"] floating enable# Make all urxvts use a 1-pixel border:
for_window [class="urxvt"] border pixel 1# A less useful, but rather funny example:
# makes the window floating as soon as I change
# directory to ~/work
for_window [title="x200: ~/work"] floating enable
有效的命令请command_criteria
4.13 不把焦点放在新建窗口
当一个新窗口出现时,焦点会移到它那里。no_focus 指令允许预防这种情况发生,而且它必须与command_criteria一起使用
注意,他不会在所有情景下生效,例如,当数据正输送给一个运行中的程序,使得焦点必须移到它身上。设置这种情况的行为,参考focus_on_window_activation
在工作区的第一个窗口中,no_focus也会被忽略,在这种情况下,没有理由不把焦点放在这个窗口。与workspace_layaout结合使用会有更好是可用性。
语法
no_focus <criteria>
例子
no_focus [window_role="pop-up"]
4.14 变量
正如您在有关键盘绑定的章节中了解到的,你将要配置许多包含修饰键的绑定,如果你想要保存一些输入并能够改变你之后要用的修饰键,那么变量就很方便了。
语法
set $<name> <value>
例子
set $m Mod1
bindsym $m+Shift+r restart
在解释过程中,变量会在文件中被替换。变量扩张不是递归的,所以不可能用一个包含另一个变量的值来定义变量。对于这个没有其他的想法,而且绝对没有改变的计划。如果你需要更多的动态配置,你应该创建一些用来生成配置文件在i3启动之前运行的脚本。
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- POJ 2342 最大利润
POJ 2342 最大利润 POJ 2342 题目 There is going to be a party to celebrate the 80-th Anniversary of the Ural State University. The University has a hierarchical structure of employees. It means that the supervisor relation forms a tree rooted at the rector …...
2024/4/29 18:07:01 - [前端开发面试题][js]用es5,es6分别封装一个数组去重的方法
用es5,es6分别封装一个数组去重的方法 一、es5 通过对象变量名唯一去重 重复的判定条件为==,即只看值不看类型,5和’5‘也算重复var arr = [5, 5, 5, 7, 8, 8, 9, 9]function unique(arr) {var brr = [],obj = {};for (var i = 0; i < arr.length; i++) {if (!obj[arr[i]…...
2024/5/1 5:08:20 - socket编程——简单通信
socket编程一、socket是什么?二、套接字的分类2.1 基于文件类型的套接字家族2.2 基于网络类型的套接字家族三、套接字工作流程四、套接字用法4.1 socket模块函数用法4.2 服务端套接字函数4.3 客户端套接字函数4.4 公共用途的套接字函数4.4 面向锁的套接字方法4.5 面向文件的套…...
2024/5/1 0:02:06 - Keil官网下载包不显示的解决方法
Keil 5(MDK 5)包管理器用不了,包无法下载,这时候我们需要到官网去下载这些包,但有人可能会发现打开https://www.keil.com/dd2/pack/ 这个页面的时候,发现并没有可以用的包下载:我通过浏览器控制台查看发现原来是下面的页面需要用jquery来加载,但是这个页面所引用的jquery…...
2024/4/29 18:06:50 - Macbook pro下通过docker方式安装kafka
安装背景 为了测试kafka推送日志,为今后的大数据作准备,在本地docker上安装kafka。记录步骤以备忘。 前提是安装docker,可以自行搜索下。 安装步骤 1. docker拉取Zookeeper docker pull wurstmeister/zookeeper2. docker拉取Kafka docker pull wurstmeister/kafka3. docker运…...
2024/5/1 18:59:43 - C++获取本地日期和时间
C++获取本地日期和时间time_t now = time(0);/*time_t now; //该写法与上面写法等价time(&now);*/struct tm p;//指向本地时间的tm结构体localtime_s(&p, &now); //VS后新增的安全函数,获取本地日期和时间printf(" ");printf(&quo…...
2024/4/29 18:06:41 - JavaScript小白最全学习笔记(5)
方法//函数也可以称为对象的属性//如果一个函数作为一个对象的属性保存//那我们称这个函数是这个对象的方法//调用document的write方法document.write();//调用函数就称调用函数的方法(Method)//创建一个对象var obj1 = new Object();//向对象中添加属性obj1.name = "猪…...
2024/4/29 18:06:40 - 【Android面经分享】再见,Tencent!你好,BiliBili
2020年6月,我从工作两年的腾讯离职了。离职前同事帮我弄到了B站的内推,经过3面后,8月4号我拿着26K的offer顺利的进入B站。作为一名资深技术宅,国漫和日番一直让我爱不释手。平时有了时间也不太爱出门,基本都是躺着用B站刷番,而这次去B站算是了却我之前的心愿。一、面试第…...
2024/4/29 18:06:34 - 剑指 Offer 57. 和为s的两个数字 - leetcode 剑指offer系列
题目难度: 中等原题链接今天继续更新剑指 offer 系列, 老样子晚上 6 点 45 分准时更新公众号 每日精选算法题, 大家记得关注哦~ 另外在公众号里回复 offer 就能看到剑指 offer 系列当前连载的所有文章了题目描述 在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了…...
2024/4/29 18:06:29 - Java之匿名类2
匿名类匿名类是一种即时继承现有类的方法。例如,下面有一个类 Computer:class Computer {public void start() {System.out.println("Starting");} }创建 Computer 对象时,我们可以即时更改 start 方法。public static void main(String[] args) {Computer c = ne…...
2024/4/29 18:06:26 - tf.device()指定tensorflow运行的GPU或CPU设备
在tensorflow中,我们可以使用 tf.device() 指定模型运行的具体设备,可以指定运行在GPU还是CUP上,以及哪块GPU上。设置使用GPU使用 tf.device(/gpu:1) 指定Session在第二块GPU上运行:import tensorflow as tfwith tf.device(/gpu:1):v1 = tf.constant([1.0, 2.0, 3.0], shap…...
2024/4/30 12:14:08 - 【Element】el-table,ie浏览器,无数据时样式变形问题
使用el-table,在IE浏览器,"暂无数据",挤到第一列问题。如图:有数据时使用"v-show" 控制显示正常 使用"v-if" 控制显示变形注:页面是用的JSP+Vue...
2024/4/29 1:46:54 - 两个免费深度学习计算平台: Google Colaboratory 和 Kaggle
两个免费深度学习计算平台: Google Colaboratory 和 Kaggle 在这两个平台中,任何人都可以通过浏览器编写和执行任意 Python 代码。它尤其适合机器学习、数据分析和教育目的。从技术上说,两者都是一种Jupyter 笔记本服务,所在环境就是python的解释器,也可以在命令前添加符号…...
2024/4/29 18:06:22 - 日常记录知识点
目录唉我啥也不会日期或时间需要补全位数时间间隔的类型转换在当前日期基础上减去一段时间数据分组时每一列的聚合方式不同数据转换成独热编码遍历修改字典的内容dataframe拼接后索引 唉我啥也不会 太难了 日期或时间需要补全位数 excel里面的数据可能因为单元格格式设置为数字…...
2024/4/29 18:06:20 - 【luogu2014】【树形DP】选课
传送门 题目描述 在大学里每个学生,为了达到一定的学分,必须从很多课程里选择一些课程来学习,在课程里有些课程必须在某些课程之前学习,如高等数学总是在其它课程之前学习。现在有 NNN 门功课,每门课有个学分,每门课有一门或没有直接先修课(若课程 a 是课程 b 的先修课即…...
2024/4/29 18:06:14 - 解决Java抽象类无法注入
问题引入首先明确一个问题:抽象类不能生成实例对象,spring无法注入。原因:spring的原理是启动服务器时读取配置文件,取得类名后利用反射机制在spring上下文中生成一个单例的对象,由spring注入属性并维护此对象的状态,抽象类在反射生成对象时就已经失败了,后面的不会进行…...
2024/4/29 18:06:10 - 第一个错误的版本
你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。 假设你有 n 个版本 [1, 2, …, n],你想找出导致之后所有版本出错的第一个错误的版本。 你可…...
2024/4/29 18:06:06 - DFS解决克隆图问题
题目描述 给你无向连通图中一个节点的引用,请你返回该图的深拷贝(克隆)。图中的每个节点都包含它的值 val(int) 和其邻居的列表(list[Node])。每个节点的值都和它的索引相同。例如,第一个节点值为 1(val = 1),第二个节点值为 2(val = 2),以此类推。必须将给定节点…...
2024/4/29 18:06:02 - layui.table实现分页情况下全表排序
layui.table实现分页情况下全表排序 在项目中,使用layui.table实现数据显示,有排序的需求,但是发现layui.table自带的排序在分页的情况下,只能对当前分页进行排序,而不是全表排序…… 那么如果能对表格排序按钮的点击事件进行监听大概就能实现了 事实上确实可以 // 监听排…...
2024/4/29 18:05:57 - 词霸天下---词根256【-cant-= -cent- = -chant- = -chans- 歌 唱】
...
2024/4/29 18:05:54
最新文章
- java技术栈快速复习02_前端基础知识总结
前端基础 经典三件套: html(盒子)css(样式)JavaScript(js:让盒子动起来) html & css HTML全称:Hyper Text Markup Language(超文本标记语言),不是编程语…...
2024/5/1 19:30:15 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - 3d representation的一些基本概念
顶点(Vertex):三维空间中的一个点,可以有多个属性,如位置坐标、颜色、纹理坐标和法线向量。它是构建三维几何形状的基本单元。 边(Edge):连接两个顶点形成的直线段,它定…...
2024/4/30 6:02:33 - 理解 Golang 变量在内存分配中的规则
为什么有些变量在堆中分配、有些却在栈中分配? 我们先看来栈和堆的特点: 简单总结就是: 栈:函数局部变量,小数据 堆:大的局部变量,函数内部产生逃逸的变量,动态分配的数据&#x…...
2024/5/1 13:25:19 - 416. 分割等和子集问题(动态规划)
题目 题解 class Solution:def canPartition(self, nums: List[int]) -> bool:# badcaseif not nums:return True# 不能被2整除if sum(nums) % 2 ! 0:return False# 状态定义:dp[i][j]表示当背包容量为j,用前i个物品是否正好可以将背包填满ÿ…...
2024/5/1 10:25:26 - 【Java】ExcelWriter自适应宽度工具类(支持中文)
工具类 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;/*** Excel工具类** author xiaoming* date 2023/11/17 10:40*/ public class ExcelUti…...
2024/5/1 13:20:04 - Spring cloud负载均衡@LoadBalanced LoadBalancerClient
LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon,直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件,我们讨论Spring负载均衡以Spring Cloud2020之后版本为主,学习Spring Cloud LoadBalance,暂不讨论Ribbon…...
2024/4/29 18:43:42 - TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案
一、背景需求分析 在工业产业园、化工园或生产制造园区中,周界防范意义重大,对园区的安全起到重要的作用。常规的安防方式是采用人员巡查,人力投入成本大而且效率低。周界一旦被破坏或入侵,会影响园区人员和资产安全,…...
2024/5/1 4:07:45 - VB.net WebBrowser网页元素抓取分析方法
在用WebBrowser编程实现网页操作自动化时,常要分析网页Html,例如网页在加载数据时,常会显示“系统处理中,请稍候..”,我们需要在数据加载完成后才能继续下一步操作,如何抓取这个信息的网页html元素变化&…...
2024/4/30 23:32:22 - 【Objective-C】Objective-C汇总
方法定义 参考:https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…...
2024/4/30 23:16:16 - 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】
👨💻博客主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】🌏题目描述🌏输入格…...
2024/5/1 6:35:25 - 【ES6.0】- 扩展运算符(...)
【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数࿰…...
2024/5/1 11:24:00 - 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?
文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕,各大品牌纷纷晒出优异的成绩单,摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称,在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁,多个平台数据都表现出极度异常…...
2024/5/1 4:35:02 - Go语言常用命令详解(二)
文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令,这些命令可以帮助您在Go开发中进行编译、测试、运行和…...
2024/4/30 14:53:47 - 用欧拉路径判断图同构推出reverse合法性:1116T4
http://cplusoj.com/d/senior/p/SS231116D 假设我们要把 a a a 变成 b b b,我们在 a i a_i ai 和 a i 1 a_{i1} ai1 之间连边, b b b 同理,则 a a a 能变成 b b b 的充要条件是两图 A , B A,B A,B 同构。 必要性显然࿰…...
2024/4/30 22:14:26 - 【NGINX--1】基础知识
1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息,并安装一些有助于配置官方 NGINX 软件包仓库的软件包: apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...
2024/5/1 6:34:45 - Hive默认分割符、存储格式与数据压缩
目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限(ROW FORMAT)配置标准HQL为: ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...
2024/4/30 22:57:18 - 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法
文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中,传感器和控制器产生大量周…...
2024/4/30 20:39:53 - --max-old-space-size=8192报错
vue项目运行时,如果经常运行慢,崩溃停止服务,报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中,通过JavaScript使用内存时只能使用部分内存(64位系统&…...
2024/5/1 4:45:02 - 基于深度学习的恶意软件检测
恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞,例如可以被劫持的合法软件(例如浏览器或 Web 应用程序插件)中的错误。 恶意软件渗透可能会造成灾难性的后果,包括数据被盗、勒索或网…...
2024/5/1 8:32:56 - JS原型对象prototype
让我简单的为大家介绍一下原型对象prototype吧! 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定,每一个构造函数都有一个 prototype 属性,指向另一个对象,所以我们也称为原型对象…...
2024/5/1 14:33:22 - C++中只能有一个实例的单例类
C中只能有一个实例的单例类 前面讨论的 President 类很不错,但存在一个缺陷:无法禁止通过实例化多个对象来创建多名总统: President One, Two, Three; 由于复制构造函数是私有的,其中每个对象都是不可复制的,但您的目…...
2024/5/1 11:51:23 - python django 小程序图书借阅源码
开发工具: PyCharm,mysql5.7,微信开发者工具 技术说明: python django html 小程序 功能介绍: 用户端: 登录注册(含授权登录) 首页显示搜索图书,轮播图࿰…...
2024/5/1 5:23:20 - 电子学会C/C++编程等级考试2022年03月(一级)真题解析
C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...
2024/4/30 20:52:33 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57