我想在vim中当前打开的所有文件中搜索文本,并在一个地方显示所有结果.我想有两个问题:
:grep
/ :vim
,尤其是不在磁盘上的文件名;:grep -C 1 text
在quickfix窗口中看起来不太好.这是Sublime Text 2中多文件搜索的一个很好的例子:
有任何想法吗?
我想支持至少api 10,我希望能够很好地设置我的偏好,我希望能够有标题(或显示PreferenceScreen
s).似乎PreferenceActivity
不完全支持AppCompat
着色,不适合.所以我正在尝试使用AppCompatActivity
和PreferenceFragmentCompat
.
public class Prefs extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState == null)
getSupportFragmentManager().beginTransaction()
.replace(android.R.id.content, new PreferencesFragment())
.commit();
}
public static class PreferencesFragment extends PreferenceFragmentCompat {
@Override public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
@Override
public void onDisplayPreferenceDialog(Preference preference) {
// the following call results in a dialogue being shown
super.onDisplayPreferenceDialog(preference);
}
@Override public void onNavigateToScreen(PreferenceScreen preferenceScreen) {
// I can probably …
Run Code Online (Sandbox Code Playgroud) android android-appcompat android-preferences android-support-library
假设我有这样的代码
async def fetch_text() -> str:
return "text "
async def show_something():
something = await fetch_text()
print(something)
Run Code Online (Sandbox Code Playgroud)
这很好。但后来我想清理数据,所以我做
async def fetch_text() -> str:
return "text "
def fetch_clean_text(text: str) -> str:
text = await fetch_text()
return text.strip(text)
async def show_something():
something = fetch_clean_text()
print(something)
Run Code Online (Sandbox Code Playgroud)
(我可以清理里面的文本show_something()
,但让我们假设show_something()
可以打印很多东西并且不知道或不应该知道清理它们的正确方法。)
这当然是一个SyntaxError: 'await' outside async function
. 但是——如果这段代码可以运行——当await
表达式没有放在协程函数中时,它会在协程函数的上下文中执行。为什么不允许这种行为?
我在这个设计中看到了一位专业人士;在我的后一个例子中,你看不到show_something()
的身体正在做一些可能导致其暂停的事情。但是如果我要创建fetch_clean_text()
一个协程,它不仅会使事情复杂化,而且可能还会降低性能。拥有另一个本身不执行任何 I/O 的协程是没有意义的。有没有更好的办法?
我有一个gevent应用程序,可以跨多个模块生成多个greenlet.我希望能够优雅地关闭应用程序(例如内部或通过捕获SIGTERM
),允许greenlet通过捕获GreenletExit
和执行finally:
子句很好地终止.
如果我有一个所有正在运行的greenlets,我可以做gevent.killall(list_of_greenlets)
,但保持这样的列表是相当麻烦的; 此外,gevent必须以某种形式保留这个列表.
那么,我可以杀死已经启动的所有greenlets而不维护它们的列表吗?
(我在raspthon上的python 2.7上使用gevent 1.0.0)
我只希望能够一次共享指向多个图像的链接。
我想在 Python 中创建等价物:
static class Event {}
static class MyEvent extends Event {}
interface Filter<E extends Event> {
boolean filter(E event);
}
static class MyFilter implements Filter<MyEvent> {
@Override public boolean filter(MyEvent event) {
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的尝试(mypy-play):
from typing import TypeVar, Protocol
class Event:
pass
class MyEvent(Event):
pass
E = TypeVar("E", bound=Event)
class Filter(Protocol[E]):
def filter(self, event: E) -> bool:
raise NotImplementedError
class MyFilter(Filter):
def filter(self, event: MyEvent) -> bool: # should be ok
raise NotImplementedError …
Run Code Online (Sandbox Code Playgroud) 我想从字符串构造类,如"red apple"
.这将创建一个类的实例Apple
,它是一个子类Fruit
.事情是,color
属性应该属于Fruit
,而不是Apple
.因此,在我看来,创建对象的自然方式是:
Fruit(color="red")
Apple()
到目前为止,我有3个选择:
一切都变成了参数
class Fruit(object):
def __init__(self, color):
self.color = color
def observe(self):
print "Looks like a tasty %s fruit" % self.color
@classmethod
def fromstring(cls, string):
color, kind = string.split()
if kind == "apple":
return Apple(color)
class Apple(Fruit):
def __init__(self, *args, **kwargs):
super(Apple, self).__init__(*args, **kwargs)
self.tasty = True
def bite(self):
print "I bite into a tasty apple"
fruit = Fruit.fromstring("red apple") …
Run Code Online (Sandbox Code Playgroud)我正在使用开始服务
startService(new Intent(this, RelayService.class));
Run Code Online (Sandbox Code Playgroud)
然后该服务使用发出警报
AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, SyncAlarmReceiver.class);
PendingIntent pi = PendingIntent.getBroadcast(this, 0, intent,
PendingIntent.FLAG_CANCEL_CURRENT);
am.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime() + SYNC_EVERY_MS, SYNC_EVERY_MS, pi);
Run Code Online (Sandbox Code Playgroud)
然后BroadcastReceiver SyncAlarmReciver
尝试使用获取服务
RelayServiceBinder relay = (RelayServiceBinder)
peekService(context, new Intent(context, RelayService.class));
Run Code Online (Sandbox Code Playgroud)
在其他应用程序需要更多内存时,在应用程序被终止后,系统重新启动该服务之前,一切正常。重新启动后,该服务使用相同的代码重新启动警报,但peekService()
返回null。通过调试消息,我看到context
服务和广播接收器中的内容以及RelayService对象是相同的,即这些对象是内存中的相同对象。我怎么解决这个问题?
如果有帮助,这里是指向上述三段代码的链接:主要活动,服务,广播接收器。
PS我知道该服务正在连续运行,因为我正在密切注意该过程,发现它运行正常并且没有以任何方式重新启动,并且因为我看到在启动警报之前它已打开的连接不会被中断。
我正在学习SQL(使用SQLite 3及其sqlite3命令行工具),我注意到我可以通过多种方式做一些事情,有时候不清楚哪一个更好.这里有三个查询该做同样的事情,一是通过执行intersect
,另外通过inner join
和distinct
,最后一个类似于第二之一,但它包含过滤通过where
.(第一个是由我正在阅读的书的作者和我自己写的其他人写的.)
问题是,哪些查询更好,为什么?而且,更一般地说,我怎么知道一个查询何时比另一个更好?是否有一些我错过的指南,或者我应该学习SQLite内部,尽管SQL的声明性质?
(在下面的例子中,有一些描述在一些电视剧中提到食品名称表.Foods_episodes是许多一对多连接表,而其他同季数描述食品名称和插曲的名字连在一起.请注意,所有时间的前十名正在寻找食物(基于所有系列中出现的数量),而不仅仅是季节中的顶级食物3 ... 5)
-- task
-- find the all-time top ten foods that appear in seasons 3 through 5
-- schema
-- CREATE TABLE episodes (
-- id integer primary key,
-- season int,
-- name text );
-- CREATE TABLE foods(
-- id integer primary key,
-- name text );
-- CREATE TABLE foods_episodes(
-- food_id …
Run Code Online (Sandbox Code Playgroud)