Questions tagged «magit»

是Git版本控制系统的Emacs扩展。


7
如何实现类似于Magit中使用的弹出菜单
题 我想以弹出菜单的形式创建用户界面,该弹出菜单类似于Magit中使用的弹出菜单。 特征 弹出窗口的定义 在此问题的上下文中,弹出窗口意味着很少有包含菜单项集合的临时窗口,以便用户可以选择其中一项,并且只能选择其中一项。 在屏幕上的位置 允许弹出窗口出现在屏幕的任何部分,但是希望它应该非常明显,因此应该出现在当前活动的窗口旁边。 弹出缓冲区的内容 项目应以漂亮的表格形式显示。问题的上下文很漂亮,这意味着视觉上很吸引人,可以通过将菜单项置于直行中来轻松实现此效果complete--insert-string,例如参见 。本段用于进一步说明,您可以按照自己的方式进行操作,这不会使您的答案不正确。 菜单项的选择 选择可以通过一次按键或使用鼠标(尽管不是很重要,因此包含不支持鼠标的命题的答案是合法的)来执行。如果您提出支持鼠标的解决方案,请注意,用户应该能够以直观的方式选择菜单项,即,通过左键单击所需的选项。 NB鼠标可以以多种方式使用,也欢迎使用其他方式表示选择。 消除弹出窗口 一旦用户以上述方式选择了菜单项,就应从缓冲区中消除缓冲区并因此将其窗口从视图中清除并杀死。调用弹出菜单之前已处于活动状态的窗口应再次获得焦点(即变为活动状态)。 返回值和参数 优选地,动作的这种结果应该导致返回Lisp对象。Lisp对象可以是: nil—这表示用户已通过按C-g或以其他方式† 终止了弹出菜单。 string—字符串(允许使用符号)应string-equal 位于作为实际项目集合提供给弹出菜单的字符串之一上。 让程序的其余部分知道用户的选择,或者可能没有用户选择的替代方法是可以接受的。但是,如果不清楚如何执行其他操作,请立即让所有答题者即兴回答,也不要要求我进一步说明这方面。 这都是为了返回值。至于输入参数,它们至少应包括代表可能选择(即菜单项)的字符串集合。 可接受的答案 预期答案可以采用以下形式: 足够的代码段,使受过教育的读者可以编写如上所述的功能;不需要或不需要编写整个工作功能。但是,为了避免不确定性(可以省略大量代码吗?),我应该注意,应在答案的文本部分中描述代码段的缺失部分。 指向实现类似功能的现有库的链接。为避免不确定性,我应该注意,在我们的情况下,类似意味着该库可用于创建具有至少2个或3个上述功能的弹出窗口(请参见上面的定义)。如果提议的库与无法满足先前陈述的条件不同,则将对每个此类情况进行独立判断,并且如果OP认为有用,将始终予以驳回。 内置Emacs功能或第三方功能的描述,这些功能可用于实现“功能”部分中描述的任何功能,请参见上文。为了避免不确定性,请注明你的答案可以很清楚如何是谁想要实现未来的读者有用的弹出,类似于Magit使用弹出式菜单。 †中止弹出菜单的替代方法可能包括以下几种(但不仅限于这些): 在弹出菜单窗口之外单击; 杀死包含弹出窗口的缓冲区而没有做出选择。
10 magit  popup 

8
magit-push在Windows上挂起
我在Windows上使用GNU Emacs,无法magit-push将本地更改推送到远程存储库。不论是使用SSH还是HTTPS访问远程存储库,都会发生这种情况。我需要做些什么才能使magit-pushWindows在Linux机器上无缝(或至少接近)地工作? 我在*Messages*缓冲区中看到的是 Running c:/Program Files (x86)/Git/bin/git.exe push -v origin master:refs/heads/master *magit-process*缓冲区中或多或少都显示相同的内容。没有什么比这有用的了。我可以从命令行进行git push,但是它确实要求输入我的ssh密钥的密码。可能是问题所在吗?我曾尝试用Pageant(PuTTY的密钥代理)加载密钥,但这似乎没有什么不同。 如果有帮助,我已经安装了Cygwin,并且对强制Emacs使用Cygwin的可执行文件的解决方案感到满意。

1
如何很好地处理与视线模式兼容的git diff?
我在组织模式下visual-line-mode打开稿子,将其打开。从物理上讲,我的一段只是一条软包装的线。 在这种情况下,当我尝试git diff(magit)来查看所做的更改时,所有这行(段落)都标记为已更改。我无法简单地更改本段的哪一部分。 我认为应该有一些解决此问题的解决方案,但我无法从网站上找到任何答案。谁能分享您的好解决方案?
9 magit  git 

2
Evil中的默认Magit提交状态
我用evil。通常,当我提交时,我想立即开始输入,但是在中evil启动缓冲区evil-normal-state。我曾经设定 (evil-set-initial-state #'git-commit-mode 'insert) 但这不再起作用,因为Magit将text-mode其用于提交缓冲区。 我怎样才能使Magit的提交默认为evil-insert-state?
9 magit  evil 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.