小编SFb*_*007的帖子

同时在拆分窗口中滚动两个打开的缓冲区

有时我喜欢比较两个打开的缓冲区,或者只需点击一下同时滚动它们.如何在emacs中做到这一点?

emacs

21
推荐指数
1
解决办法
5133
查看次数

从switch-to-buffer列表中排除"讨厌的缓冲区"

我的.emacs中有这个:

(global-set-key "\M-s" 'switch-to-buffer)
Run Code Online (Sandbox Code Playgroud)

并且:

(defvar crs-hated-buffers
  '("KILL" "*Compile-Log*" "*Buffer List*" "*Messages*" "*Occur*"
    "*Completions*" "*compilation*" "TAGS" "*scratch*" "*grep*"
    "source" "headers"))
(setq iswitchb-buffer-ignore (append '(
    "^ "
    "^\\*Buffer"
    "^\\*Completions\\*"
    "^\\*tramp"
    "^\\*Dired log\\*"
    "^\\*Quail Completions\\*"
    "^\\*Disabled Command\\*"
    "^TAGS"
    )
    crs-hated-buffers))
Run Code Online (Sandbox Code Playgroud)

如何从交换机到缓冲区列表中排除这些讨厌的缓冲区?

emacs elisp

6
推荐指数
1
解决办法
659
查看次数

在emacs 24.3.1中使用CEDET

我了解到CEDET内置于我安装的emacs 24.3.1中.不幸的是,所有在线教程都会指导您安装CEDET并为您提供引用和加载已安装的软件包和文件的配置文件.

如何配置内置CEDET并在不进行任何外部安装的情况下使用它?我不知道如何利用内置版本.

emacs elisp cedet

6
推荐指数
1
解决办法
790
查看次数

在模式行中更改缓冲区名称的颜色

在使用许多文件时,特别是在模式行中使缓冲区/文件名更加可见是很好的.

如何在模式行中更改缓冲区名称的颜色?

emacs elisp

6
推荐指数
2
解决办法
1191
查看次数

如何检查是否连接到远程服务器?

我使用tramp连接到我公司的服务器.如果我访问本地文件与远程文件,我想自定义我的功能以不同的方式工作.

是否有变量我可以检查我正在访问的缓冲区是在远程服务器还是我的本地机器上?

就像是:

if(TRAMP_CONNECTED)
 Do this
else
 Do that
Run Code Online (Sandbox Code Playgroud)

emacs elisp tramp

6
推荐指数
1
解决办法
591
查看次数

Tmux:如何在嵌套远程 ssh 会话和本地计算机之间复制文本

我在本地有 tmux 会话,它连接到多个远程 tmux 会话。

我无法弄清楚如何从这些远程 tmux 会话和本地计算机复制文本。

神秘的是,打开远程 ssh 会话(不是嵌套在本地 tmux 中)是有效的。

基本上,如果我启动 ssh 会话并附加到远程 tmux,那么一切正常(复制/粘贴)。另一方面,如果我启动本地 tmux,然后 ssh 到远程系统并附加到它的 tmux 会话,那么我无法从该远程会话复制到本地计算机(我在 Catalina/MacOS 上)。这对我来说似乎很奇怪。

macos ssh tmux

6
推荐指数
1
解决办法
3824
查看次数

/usr/bin/ld: crtbegin.o: No such file: No such file or directory

我想安装 llvm-clang 但在工作时没有 root 访问权限。我们的许多软件包都已过时,因此我将所有内容都安装在本地主目录下。

我安装了 cmake 和 gcc,但现在安装 llvm 时出错。

我的主目录结构如下:

~/gcc_build -> has the /bin directory which includes gcc, g++...etc (result of make install).

~/gcc-7.1.0 -> which has the main gcc build directory (where make was run)

~/llvm-4.0.0.src -> the main llvm directory 

~/llvm_make -> where I am trying to make llvm in (empty)
Run Code Online (Sandbox Code Playgroud)

这是我的命令:

    [server-01:llvm_make]% ../cmake-3.8.2/bin/cmake ../llvm-4.0.0.src -DCMAKE_CXX_COMPILER=/home/sbay/gcc_build/bin/g++ -DCMAKE_C_COMPILER=/home/sbay/gcc_build/bin/gcc
Run Code Online (Sandbox Code Playgroud)

但我收到此错误:

[server-01:llvm_make]% ../cmake-3.8.2/bin/cmake ../llvm-4.0.0.src -DCMAKE_CXX_COMPILER=/home/sbay/gcc_build/bin/g++ -DCMAKE_C_COMPILER=/home/sbay/gcc_build/bin/gcc
-- The C compiler identification is GNU 7.1.0
-- The CXX compiler …
Run Code Online (Sandbox Code Playgroud)

c++ gcc g++ llvm clang

5
推荐指数
1
解决办法
8416
查看次数

显示两个文件之间的行差异

如何在emacs中实现一个功能,以显示在两个缓冲区中打开的两个文件之间的内容差异?有点像使用mercurial时的revdiff.

emacs elisp

4
推荐指数
1
解决办法
324
查看次数

并排在两个打开的缓冲区中镜像文件中的位置

我试图在 emacs 中找到一个包/函数,它可以将两个文件并排打开以位于同一行位置,以反映正在移动的任何缓冲区的移动。这意味着,对于并排打开的两个缓冲区,在其中一个缓冲区中移动(向上/向下翻页、移动光标等)将在另一个缓冲区中具有相同的移动。

更具体地说,当打开一个缓冲区时(并在激活此模式时),打开的缓冲区应该已经在另一个缓冲区窗口中已经打开的缓冲区的行位置。

emacs elisp

3
推荐指数
1
解决办法
800
查看次数

将二进制路径添加到 emacs $PATH

我尝试了以下方法:

(setenv "PATH" (concat (getenv "PATH") ":~/mybin"))
(setq exec-path (append exec-path '(":~/mybin")))
Run Code Online (Sandbox Code Playgroud)

但这从来没有奏效。我试过M-!并键入其中一个二进制名称,并且在使用二进制名称相同结果进行 Mx 编译时也给出了“未知命令”。Mx compile 然后 echo $PATH 给出了没有我的 ~/mybin 文件夹的路径。我在solaris上。我究竟做错了什么?

emacs elisp

2
推荐指数
1
解决办法
2776
查看次数

标签 统计

emacs ×8

elisp ×7

c++ ×1

cedet ×1

clang ×1

g++ ×1

gcc ×1

llvm ×1

macos ×1

ssh ×1

tmux ×1

tramp ×1