小编Lim*_*mon的帖子

通过IntelliJ在Linux子系统Linux中使用Git

我试图将IntelliJ中的Git可执行文件设置为Windows子系统for Linux中安装的git,我尝试了几种不同的方法,但总是遇到某种错误.今天我安装了Creators Update(版本1703),重新安装了WSL并再次尝试,这就是我所做的:

我创建了一个.bat脚本:

@echo off
C:\Windows\System32\bash.exe -c "git %*"
Run Code Online (Sandbox Code Playgroud)

所以在运行时:

C:\Users\Limon\Desktop>bash.bat --version
git version 2.7.4
Run Code Online (Sandbox Code Playgroud)

那么我试着在IntelliJ中的git可执行文件中设置这个bat: 在IntelliJ中设置Git可执行文件

它奏效了!但其他一切都失败了,例如当我尝试在IntelliJ中拉或分支时,我得到:

Couldn't check the working tree for unmerged files because of an error.
'C:\Windows\System32\bash.exe' is not recognized as an internal or external command,
operable program or batch file.
Run Code Online (Sandbox Code Playgroud)

关于如何修复这个的任何想法?我对批处理脚本并不了解.它在命令行下完美运行.

batch-file intellij-idea windows-subsystem-for-linux

30
推荐指数
4
解决办法
8399
查看次数

获取工具栏的碎片

我在主要活动中设置了一个工具栏,当我进入片段时,我想在其上添加一个滑块.如果我有权访问Toolbar对象,我只会这样做:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);


Spinner mNavigationSpinner = new SpinnerTrigger(getSupportActionBar().getThemedContext());
toolbar.addView(mNavigationSpinner);
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用它

((ActionBarActivity) getActivity()).getSupportActionBar()
Run Code Online (Sandbox Code Playgroud)

我没有任何addView()方法.所以我的问题是,如果工具栏本身是在Activity中创建的,如何在片段中向工具栏添加视图.

我不确定这是否是最好的观点,但我不认为我可以在布局中定义Spinner,因为我的大多数片段都没有使用它,他们只是设置一个标题工具栏.但与此同时,如果我可以在主活动中定义一次工具栏并且不为每个片段重做它,那将会很棒.

android android-fragments android-toolbar

5
推荐指数
2
解决办法
2万
查看次数

防止反应表中不必要的重绘

我在 React 中有一个包含几千行的表,其中内容永远不会改变(某些行可能会被过滤掉,但行内容永远不会更新)。每行都有一个复选框可供选择,然后对所选行触发一些进一步的操作。na\xc3\xafve 的实现可能会设置一个包含所有选定元素的 ID 的状态,然后每个复选框将根据其 ID 是否处于该状态来获取其选中属性:

\n\n
const [selectedIds, setSelectedIds] = useState(new Set());\n...\nreturn (\n  <Table>\n  ...\n    <Table.Row>\n    ...\n      <Checkbox id={entry.id} checked={selectedIds.has(entry.id)} onClick={onCheckboxClick} />\n
Run Code Online (Sandbox Code Playgroud)\n\n

这样做的问题是,任何更改都会selectedIds导致整个表的重绘,即使只选择了 1 行。这可以通过React.memo()在行级别使用来轻松修复,这是我的实现: https: //codesandbox.io/s/table-row-with-checkbox-semantic-lki3x

\n\n

这样,选择任何单行都很快,只有该行会被重绘。但是,如果我们单击表头中的复选框来选择(取消)选择所有行,它会再次变慢,因为现在所有行都必须重新绘制,即使只有 1 个单元格中的复选框发生了更改。

\n\n

如果我们将单个复选框的选中状态与 分离selectedIds,它会变得超级快:https://codesandbox.io/s/table-row-with-checkbox-semantic-tqiqi(唯一的变化是在index.js 中)

\n\n

解决这个问题的正确 React 方法是什么?我需要React.memo()在单元格级别而不是行级别使用吗?我正在寻找可以实施的通用修复,DataTable而不是仅限于这种情况。

\n

javascript reactjs

5
推荐指数
0
解决办法
468
查看次数

Python将unicode转换为ASCII

我有一个字符串列表,其中包含与拉丁文字符类似的各种不同字符,我从使用urllib2下载的网站上获取这些字符串.该网站采用utf-8编码.但是,在尝试了很多变化后,我无法弄清楚如何将其转换为简单的ASCII等价物.例如,我所拥有的一个字符串是:

u'Atl\xc3\xa9tico Madrid'
Run Code Online (Sandbox Code Playgroud)

在纯文本中,它是"马德里竞技",我想要的是将其改为"马德里竞技".如果我在这上面使用简单的unidecode,我会得到"AtlA(c)tico Madrid".我究竟做错了什么?

python unicode encoding

0
推荐指数
1
解决办法
1149
查看次数

C++运算符重载是否相等

我对C++很陌生,试图让这个简单的例子起作用,但由于某种原因,我得到了意想不到的结果.

码:

#include<iostream>

using namespace std;

struct node{
    string data;
    node *next;
    node *prev;

    node() {}

    bool operator==(const node &rhs) const {
        return data == rhs.data;
    }
};

int main(){
    bool loop=true;
    node* one = new node();
    one->data = "oddly specific";

    node* two = new node();
    two->data = "Something else";

    node* three = new node();
    three->data = "oddly specific";

    if (one == two)
        cout << "one == two";
    else
        cout << "one != two";
    if (one == three)
        cout << …
Run Code Online (Sandbox Code Playgroud)

c++ operator-overloading

-1
推荐指数
1
解决办法
805
查看次数