在Emacs或Vim中更改活动缓冲区/窗格的背景颜色

时间:2010-10-13 20:34:02

标签: vim emacs

我通常在30英寸显示器上使用Vim和Emacs全屏工作,这意味着我倾向于进行大量拆分。活动窗格的模式行改变了Vim和Emacs中的背景,但有时这不是一个容易看到的活动指示器窗格中。

有没有办法更改活动窗格的背景颜色,以便我可以一目了然地看到我目前的分裂情况?

Vim或Emacs解决方案都没问题。

7 个答案:

答案 0 :(得分:7)

如何自定义活动模式行的颜色?

M-x customize-face RET mode-line 

将背景更改为“红色”,将前景更改为“白色”,除了活动缓冲区外,您将无法关注其他任何内容:)

答案 1 :(得分:2)

这个问题已经过去了三年。有一种模式允许现在执行此操作,请查看color-theme-buffer-local

答案 2 :(得分:1)

Vim与Emacs没有区别,因为在整个应用程序窗口中无法更改实际的背景颜色,Vim中的所有“窗口”必须具有相同的背景。然而,正如dash-tom-bang所说,状态行可用于为哪个窗口处于活动状态提供一些视觉提示。这是通过使用highlight命令将StatusLineStatusLineNC突出显示组设置为具有不同颜色来完成的,活动窗口将具有颜色为StatusLine突出显示的状态行,以及所有其他窗口都将具有“无光标”StatusLineNC突出显示。

还有txtfmt插件,它(尽管有一些误导性的截图)并没有真正让你拥有不同的背景,但它可以提供一些额外的区别于窗口,有点笨重,要求你添加标记字符是有用的在您的文字中:http://www.txtfmt.webs.com/

答案 3 :(得分:1)

M-x package-install RET auto-dim-other-buffers RET

"视觉上使非当前缓冲区不那么突出"

回复:https://github.com/mina86/auto-dim-other-buffers.el

答案 4 :(得分:0)

对于Emacs,你不能这样做。您只能更改框架的背景。

参见相关问题:

一个选项可能是使用tiling window manager,并使用一堆不同的Emacs帧。然后,您可以使用FrameMove包轻松地在帧之间移动。

答案 5 :(得分:0)

Vim中有一些配色方案可以使状态行真正弹出。这不是你想要的,但你可以使它工作。在带有大量分割(和文件类型)的窗口中使用内置的colorschemes进行播放,您可以看到效果。我记得当时由于状态线颜色的变化,从反色到活动窗口中带有亮黄色文字的东西,特别是上帝很可怕。我总体上讨厌它,但有一天会将类似的东西纳入我自己的颜色方案中。

答案 6 :(得分:-1)

通过这种“突出重点”包,有可能而且非常容易做到这一点:

https://github.com/kriyative/highlight-focus

我需要做什么:

M-x软件包安装RET使用软件包RET。

将“ highlight-focus.el”放在emacs正在查找的文件夹中。

如果需要,请在.emacs中放入以下内容:

public class CrimeFragment extends Fragment {

    private String crimename;
    private String crimedate;
    private boolean crimestatus;

    public CrimeFragment() { }

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        try {
            Bundle b = getArguments();
            crimename = b.getString("crimename");
            crimedate = b.getString("crimedate");
            crimestatus = b.getBoolean("crimestatus");
        }catch (NullPointerException e){
            Log.d("myexception",e.getMessage());
        }
    }

    public static CrimeFragment newInstance(Bundle b){
        CrimeFragment crimeFragment = new CrimeFragment();
        crimeFragment.setArguments(b);

        return crimeFragment;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.fragment_crime, container, false);
        EditText editText = v.findViewById(R.id.edit);
        Button button = v.findViewById(R.id.datebut);
        CheckBox checkBox = v.findViewById(R.id.check);
        editText.setText(crimename);
        button.setText(crimedate);
        checkBox.setChecked(crimestatus);
        return v;
    }
}

然后在我的.emacs中:

df = load_your_df()

matching_regex = "yourRegexString"

matching_df = df.filter(df.fieldName.rlike(matching_regex))

non_matching_df = df.subtract(matching_df)