小编tri*_*iad的帖子

如何清除/删除终端中的当前行?

如果我正在使用终端并为命令输入一行文本,是否有热键或任何方式来清除/删除该行?

例如,如果我当前的行/命令非常像:

> git log --graph --all --blah..uh oh i want to cancel and clear this line <cursor is here now>
Run Code Online (Sandbox Code Playgroud)

是否有热键或命令从上面到:

>
Run Code Online (Sandbox Code Playgroud)

通常我会按下键,如果我的当前行是历史上的全新行,那将清除它.但是如果我通过键查看命令历史记录并开始编辑或使用这些命令,则只会将提示更改为历史记录中的下一个最新命令,因此除非我按多次,否则它不起作用.

bash terminal

723
推荐指数
11
解决办法
26万
查看次数

Android Studio logcat历史记录/缓冲区大小

有谁知道是否有办法增加Android Studio中的logcat历史/缓冲区的大小?我记得在Eclipse中有一种方法可以做到这一点,并希望Android Studio有类似的设置.

android logcat android-studio

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

Kotlin - 创建Fragment newInstance模式的惯用方法

Android上用于创建a的最佳实践Fragment是使用静态工厂方法并在Bundlevia中传递参数setArguments().

在Java中,这样做是这样的:

public class MyFragment extends Fragment {
    static MyFragment newInstance(int foo) {
        Bundle args = new Bundle();
        args.putInt("foo", foo);
        MyFragment fragment = new MyFragment();
        fragment.setArguments(args);
        return fragment;
    }
}
Run Code Online (Sandbox Code Playgroud)

在Kotlin,这转换为:

class MyFragment : Fragment() {
    companion object {
       fun newInstance(foo: Int): MyFragment {
            val args = Bundle()
            args.putInt("foo", foo)
            val fragment = MyFragment()
            fragment.arguments = args
            return fragment
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这对于支持与Java的互操作是有意义的,所以它仍然可以通过调用MyFragment.newInstance(...),但是如果我们不需要担心Java互操作,那么在Kotlin中是否有更惯用的方法呢?

android android-fragments kotlin

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

Kotlin Android View Binding:findViewById vs Butterknife vs Kotlin Android Extension

我正试图找出在Kotlin中进行Android View Binding的最佳方法.似乎有一些选择:

findViewById

val button: Button by lazy { findViewById<Button>(R.id.button) }
Run Code Online (Sandbox Code Playgroud)

牛油刀

https://github.com/JakeWharton/butterknife

@BindView(R.id.button) lateinit var button: Button
Run Code Online (Sandbox Code Playgroud)

Kotlin Android扩展程序

https://kotlinlang.org/docs/tutorials/android-plugin.html

import kotlinx.android.synthetic.main.activity_main.*
Run Code Online (Sandbox Code Playgroud)

我对java版本中的findViewById和Butterknife非常熟悉,但Kotlin中每种视图绑定方法的优缺点是什么?

Kotlin Android扩展程序与RecyclerView + ViewHolder模式相匹配吗?

另外,Kotlin Android Extensions如何处理嵌套视图的视图绑定include

例如:对于使用的活动activity_main.xml,将如何View custom1访问?

activity_main.xml中

<...>
    <include layout="@layout/custom" android:id="@+id/custom" />
</>
Run Code Online (Sandbox Code Playgroud)

custom.xml

<...>
    <View android:id="@+id/custom1" ... />
    <View android:id="@+id/custom2" ... />
</>
Run Code Online (Sandbox Code Playgroud)

android findviewbyid kotlin butterknife kotlin-android-extensions

22
推荐指数
3
解决办法
7981
查看次数

'kotlin-kapt'插件不使用'kapt.generateStubs'

我最近从Android Studio 2.3更新到3.0,并将kotlin更新1.1.41.1.51.

现在我在我的gradle控制台中看到了这条消息:

'kotlin-kapt'插件不使用'kapt.generateStubs'

我有这个build.gradle让我的项目使用注释处理来处理一些库:

kapt {generateStubs = true}

是否generateStubs不再需要该线路,是否可以安全移除?或者我应该采取另一个措施来删除上面的警告消息?

android annotations gradle kotlin android-studio

19
推荐指数
2
解决办法
7049
查看次数

Kotlin数据类复制方法不能深度复制所有成员

有人可以解释copyKotlin数据类的方法究竟是如何工作的吗?对于某些成员来说,实际上并没有创建(深层)副本,并且引用仍然是原始的.

fun test() {
    val bar = Bar(0)
    val foo = Foo(5, bar, mutableListOf(1, 2, 3))
    println("foo    : $foo")

    val barCopy = bar.copy()
    val fooCopy = foo.copy()
    foo.a = 10
    bar.x = 2
    foo.list.add(4)

    println("foo    : $foo")
    println("fooCopy: $fooCopy")
    println("barCopy: $barCopy")
}

data class Foo(var a: Int,
               val bar: Bar,
               val list: MutableList<Int> = mutableListOf())

data class Bar(var x: Int = 0)
Run Code Online (Sandbox Code Playgroud)

输出:
foo:Foo(a = 5,bar = Bar(x = 0),list = [1,2,3])
foo:Foo(a = 10,bar = Bar(x = …

copy deep-copy kotlin data-class

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

委托属性的Kotlin注释

在Kotlin中,有没有办法在委托属性上定义注释(例如:) lazy

class MyActivity: Activity() {

    @ColorInt
    val textColor: Int by lazy { ContextCompat.getColor(this, R.color.someColor) }
    ...
Run Code Online (Sandbox Code Playgroud)

IDE在@ColorInt注释处抛出错误:

此注释不适用于具有委托的目标'成员属性'

android annotations kotlin

14
推荐指数
2
解决办法
4424
查看次数

单元测试有延迟的Rxjava可观察量

我希望能够对Observable具有延迟发射的单元进行单元测试,但实际上并没有等待延迟时间.有没有办法做到这一点?

我目前正在使用CountDownHatch来延迟断言,并且工作正常,但会增加测试运行时间.

例:

val myObservable: PublishSubject<Boolean> = PublishSubject.create<Boolean>()
fun myObservable(): Observable<Boolean> = myObservable.delay(3, TimeUnit.SECONDS)

@Test
fun testMyObservable() {
    val testObservable = myObservable().test()
    myObservable.onNext(true)

    // val lock = CountDownLatch(1)
    // lock.await(3100, TimeUnit.MILLISECONDS)
    testObservable.assertValue(true)
}
Run Code Online (Sandbox Code Playgroud)

android unit-testing kotlin rx-java rx-java2

10
推荐指数
2
解决办法
3923
查看次数

用kotlin脚本解压缩文件[.kts]

我正在考虑用kotlin脚本重写一些现有的bash脚本.

其中一个脚本有一个部分可以解压缩目录中的所有文件.在bash中:

unzip *.zip
Run Code Online (Sandbox Code Playgroud)

有没有一种很好的方法来解压缩kotlin脚本中的文件?

bash unzip kotlin

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

从Eclipse文件搜索中排除文件夹名称

如何从Eclipse文件search(CTRL + H)中排除某个文件夹名称?例如,如果我想搜索所有文件,但排除名为FolderName(及其子目录)的文件夹中的任何文件,我可以在文件名模式中输入什么来完成此操作?

java eclipse

3
推荐指数
2
解决办法
5697
查看次数