小编g33*_*z0r的帖子

如果NERDTree是最后一个缓冲区,则自动退出vim

我的.vimrc中有以下内容:

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Open NERDTree by default
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
autocmd VimEnter * NERDTree
autocmd VimEnter * wincmd p
Run Code Online (Sandbox Code Playgroud)

所以,

% vim file.txt
Run Code Online (Sandbox Code Playgroud)

打开NERDTree并将光标聚焦在file.txt缓冲区中.我进行了编辑,然后在缓冲区上点击:q,我就离开了...NERDTree.这很烦人.

我可以使用:qa关闭所有缓冲区,然后退出vim,但我习惯了:q trope.所以我想知道是否有办法检测唯一剩余的缓冲区是NERDTree,并"统一"这两个缓冲区,目的是:q

编辑

问,你们将收到:https: //github.com/scrooloose/nerdtree/issues#issue/21

vim nerdtree

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

time_t的字符串表示?

time_t seconds;
time(&seconds);

cout << seconds << endl;
Run Code Online (Sandbox Code Playgroud)

这给了我一个时间戳.如何将该纪元日期变为字符串?

std::string s = seconds;
Run Code Online (Sandbox Code Playgroud)

不起作用

c++ timestamp

29
推荐指数
3
解决办法
8万
查看次数

Heroku和Github集成(如何构建项目)

我正在创建一个web服务,我想将源存储在github上并在heroku上运行应用程序.到目前为止,我还没有在'网上的任何地方看到过我的确切场景,所以我会在这里问:

我想拥有以下目录结构:

/project
  .git
  README <-- project readme file
  TODO.otl <-- project outline
  ... <-- other project-related stuff
  /my_rails_app
     app
     config
     ...
     README <-- rails' readme file 
Run Code Online (Sandbox Code Playgroud)

在上面,项目对应于http://github.com/myuser/project,而my_rails_app是应该推送到heroku的代码.我是否需要一个单独的分支用于rails应用程序,或者是否有一种更简单的方法,我错过了?

我想我的项目相关的非rails文件可能存在于my_rails_app中,但是rails README已经存在,并且覆盖它似乎不一致.但是,如果我离开它,我的rails应用程序的github页面将包含rails自述文件,这没有任何意义.

另外......我试着按照上面的描述进行设置并运行

git push heroku
Run Code Online (Sandbox Code Playgroud)

从主项目文件夹.当然,heroku不知道我想部署子文件夹:

-----> Heroku receiving push
 !     Heroku push rejected, no Rails or Rack app detected.
Run Code Online (Sandbox Code Playgroud)

deployment github heroku

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

Cron用STDERR发送电子邮件但不是STDOUT?

我有一些python脚本每天在cron中运行.如果我的脚本中出现STDERR OUTPUT,我怎么能让cron给我发电子邮件?我希望能够邮寄多个收件人,并为每个cron条目单独设置主题行.

我试过这个:

./prog > /dev/null | mail . . . 
Run Code Online (Sandbox Code Playgroud)

但它不起作用 - 当没有STDERR时我仍然收到空白的电子邮件.我是否需要在脚本本身中执行此操作?

对不起,如果这看起来很基本,我已经google了很多但似乎无法找到这个简单的回答.

email scripting cron stderr

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

如何配置vim以便移动命令包含下划线和CamelCase,但是完成将忽略它们?

例如,我目前有这个:

set iskeyword-=_
Run Code Online (Sandbox Code Playgroud)

这具有使这项工作的效果:

foo_bar
Run Code Online (Sandbox Code Playgroud)

如果光标在"f"上,按w键将光标移动到下划线.再次按下移动到栏中的"b".这是移动所需的效果,但具有破坏完成的不希望的副作用.与CamelCase令牌相同的故事.例如,

如果我有这个:

foo_bar
Run Code Online (Sandbox Code Playgroud)

而且我输入foo_<CTRL+N>我不会将"foo_bar"作为完成选项.

vim autocomplete

14
推荐指数
1
解决办法
2839
查看次数

在vim中是否可以循环滚动?

是否可以配置vim使得移动命令"环绕"垂直(或水平)缓冲区?

换句话说,假设我在视觉模式下在缓冲区中的第2行.我按3k.我的光标现在位于缓冲区的最后一行.

或者更简单地说,我的光标位于文件的第一行 - 我按下k.现在我的光标翻转到文件的最后一行.

如果之前已经问过这个问题,我很抱歉,但我找不到任何搜索"循环滚动"或"环绕滚动"的引用.

vim scroll

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

从外部main函数调用pthread_create

我想做这样的事情:

void *do_work_son(void *data)
{            
    mystruct *d = (mystruct*)data;
    while(true)
    {
        // d->whatever is corrupt
    }
}

void start_thread(pthread_t *mt)
{
    mystruct data = ...;
    pthread_create(&(*mt), NULL, do_work_son, (void *)&data);
}

int main()
{
    pthread mt;
    start_thread(&mt);
    // do more stuff here
    pthread_join(mt, NULL);
}
Run Code Online (Sandbox Code Playgroud)

这个想法是由一些线程产生的,并继续做更多的工作main...然后当完成更多工作时,等待线程完成.

它编译得很好,但是在data内部访问时结构被破坏了do_work_son.我认为这是因为线程正在退出,即使我正在调用join main.如果我将pthread_{create,join}调用都移动到start_thread,它工作正常,但然后我的main函数被while循环阻止.这样做我疯了吗?

c pthreads pthread-join

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

Python相当于ruby的__method__?

我希望能够这样做:

def asdf():
  print __method__
"asdf"
Run Code Online (Sandbox Code Playgroud)

谢谢,诺亚

ruby python

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