我使用的是MacBook,但我有一个通常的键盘.
问题是密钥并不完全映射为1对1.一件事是APPLE和ALT键.它们映射到WIN和ALT,但它们通常是物理反转的,所以如果你想使用相同的布局,你必须在操作系统中反转它们.功能键的工作方式也不同.外接器上的Fx = MacBook键盘上的Fn + Fx.然后有所有插入,删除,键.
所以,问题是,你是如何解决这个问题的?现在,我在"系统偏好设置"面板中重新映射了我想要的所有内容,但是当我拔下外部键盘时,它全部搞砸了.有没有办法只重新映射外部密钥?某些型号的键盘可以存储自己的映射而无需操作系统吗?我是唯一一个被这个困扰的人吗?
(我想避免购买外置mac键盘,因为我想尝试一种符合人体工程学的模型,据我所知,没有mac人体工学模型)
更新:感谢您的回复,我解决了这个问题.
要设置不同键盘的控制键,您必须转到系统偏好设置/修改键,然后下拉菜单选择键盘允许您选择一个特定的键盘并设置这些键.在看到拔出/插入后工作
来自@Matthew Schinckel的建议似乎适用于其他问题(功能键,......).我还没试过,因为命令键是我最大的抱怨.
我在几个地方读过emacs中的矩形函数非常有用.我已经读过一些关于它们的内容,但我无法理解为什么.我的意思是,当你想杀死一个段落时,你标记第一行/列然后标记最后一个,那实际上是一个矩形,对吧?但你仍然可以使用正常的杀...
那么你会用它们进行什么样的转换呢?
git pull --rebase删除未压缩的合并提交.有没有办法让它保存起来?
说我的历史看起来像 -
A
| \
B H
| |
C G
| |
D F
| /
E
Run Code Online (Sandbox Code Playgroud)
(A作为合并提交.)
在git pull --rebase它成为 -
H
|
G
|
F
|
X
|
B
|
C
|
D
|
E
Run Code Online (Sandbox Code Playgroud)
(X作为git pull --rebase我的历史中插入的新提交.) - A被删除.
我知道你可以使用它git rebase --preserve-merges来保存它们git rebase,但是我没有看到用它来保存它们的方法git pull --rebase.
所以我第一次使用git,有一种情况我不太清楚如何解决.
我有一个简单的webapp(只有html,css和js),我想生成可以跟踪版本号的常规版本.这很容易做到git tag.但问题是,对于我的发布,我想做一些额外的事情,比如缩小js脚本并更新html页面以指向它们.此外,我在发行版中需要一个忽略非缩小的js脚本的.gitattribute,以便git archive产生尽可能小的输出.
我所做的是创建一个releases分支.该分支包括前面提到的.gitattributes和修改过的html页面.每次我想要新版本时,我都会切换到这个分支,合并master中的更改,然后完成发布并用版本号标记它.它看起来像我想要的那样工作,但我不确定这是怎么做的.
我对更有经验的git用户的问题是这个案例通常是如何处理的?
Serializable自2004年左右开始,我就有了一个在生产中使用的课程.然而,写这篇文章的人忘了生成一个serialVersionUID.
整个事情有点工作(有一个很大的评论警告,不要触及班级中的任何东西),但是当我在一个相关的不同类中工作时,我有一个InvalidCastException,所以我想添加serialVersionUID以确保该类正常工作.
问题是,是否可以添加这样的字段,而不会破坏现有的序列化实例?它们很多,并没有简单的方法来修改它们.
我的想法来自于看到异常消息,这是以下内容:
java.io.InvalidClassException: the.problematic.Class; local class incompatible: stream classdesc serialVersionUID = -8802277085918151566, local class serialVersionUID = -3137213695071887162"
Run Code Online (Sandbox Code Playgroud)
我认为我可以使用隐式串行(跟踪中的流classdesc)作为序列,它应该保持向后兼容性.它是否正确?我(或多或少)确保我们在整个系统中获得的所有序列化实例都具有相同的版本.
我正在Kotlin 中试验Lenses,我想知道是否有一种优雅的方法可以同时更改一个对象的多个属性。假设我的域如下所示:
@optics
data class Parameters(
val duration: Int,
val length: Int) {
companion object
}
@optics
data class Calculation(
val product: String
val parameters: Parameters) {
companion object
}
Run Code Online (Sandbox Code Playgroud)
多亏了@optics注释,编辑单个字段很容易:
val calculation = Calculation(product = "prod", Parameters(duration = 10, length = 15))
Calculation.product.modify(calculation) { selectedProduct }
Calculation.parameters.duration(calculation) { newDuration() }
Calculation.parameters.length(calculation) { 10 }
Run Code Online (Sandbox Code Playgroud)
这些镜头可以完美地独立工作,但是当我想同时应用三个转换时,使用什么模式是正确的?我可以使用 avar并且calculation每次都覆盖,但这对我来说并不习惯。