小编puk*_*puk的帖子

Javascript Lint声称额外的分号是坏的(在`if`之后)

我有Javascript Lint设置在vim中进行语法检查,当我有一个语句如

if (i > 0){
 i--;
};
Run Code Online (Sandbox Code Playgroud)

它会生成以下警告

test.js|160 warning| empty statement or extra semicolon
Run Code Online (Sandbox Code Playgroud)

我认为最好总是用分号结束语句(见这里).它没有发出错误,但为什么要发出警告?我怎么能改变这个.当我正在寻找合法的警告时,我没有无数的警告.

vim jslint

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

显示标记插件会导致标记在大约4秒后"弹出"

我正在使用vim中的Show Marks插件来显示标记的位置.可以使用该\mt命令打开/关闭显示的标记.当我第一次打开文档时,标记是这样的:

标记关闭

然后大约4秒后我完全没有动作,左手标记边缘弹出如下:

标记开

我有三个问题:

  1. 那些默认标记是什么?
  2. 为什么要显示它需要几秒钟?
  3. 如何在启动时强制标记边距激活/停用?

这是.vimrc文件(我知道它很乱,但用Walter E. Kurtz上校的话说:"你有权杀了我......但是你无权判断我.")

set modeline                        "These two lines display the file name at the bottom
set ls=2

set undodir=~/.vim/undodir
set undofile
set undolevels=100    "maximum number of changes that can be undone
set undoreload=10000 "maximum number lines to save for undo on a buffer reload

"Keep undo history when switching buffers
set hidden

set nocompatible                    "Don't use vi-compatibility mode

set backspace=2                     "Use the smart version of backspace

set …
Run Code Online (Sandbox Code Playgroud)

vim vim-plugin

6
推荐指数
2
解决办法
1473
查看次数

检查mySQL中的多个表

题:

我是mySQL的新手,我甚至不知道从哪里开始.我想知道如何编写一个简单的函数,它根据分布在许多表中的值返回true或false.

细节:

这是我的表格的相关部分(所有引擎都是innodb).在阅读时,您将看到数据库只是为这些用户/组存储用户,组,文件以及这些文件的权限.

USER表:

CREATE TABLE IF NOT EXISTS USER
(
   ID                 INT NOT NULL auto_increment,

   PRIMARY KEY(ID)
)
Run Code Online (Sandbox Code Playgroud)

GROUP表:

CREATE TABLE IF NOT EXISTS GROUP
(
   ID           INT NOT NULL AUTO_INCREMENT,

   PRIMARY KEY(ID)
)
Run Code Online (Sandbox Code Playgroud)

GROUP MEMBERSHIP表:

CREATE TABLE IF NOT EXISTS GROUPMEMBERSHIP
(
   ID           INT NOT NULL AUTO_INCREMENT,
   USERID       INT NOT NULL,
   GROUPID      INT NOT NULL,

   UNIQUE ( USERID, GROUPID ),
   PRIMARY KEY(ID),
   FOREIGN KEY (USERID) REFERENCES USER(ID),
   FOREIGN KEY (GROUPID) REFERENCES GROUP(ID)
)
Run Code Online (Sandbox Code Playgroud)

文件表: …

mysql

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

使用Python的stat函数有效地获取所有者,组和其他权限

题:

如何有效地使用stat函数来获取有意义的文件权限(用户,组和其他).

细节:

我正在查询文件权限,如下所示:

statInfo = os.stat
permissions = stat.S_IMODE ( os.stat ( 'fooBar.txt' ).st_mode )
Run Code Online (Sandbox Code Playgroud)

这将以十进制形式返回权限.因此,如果fooBar.txt具有八进制文件权限0700,则此处permissions设置为十进制值448.我想是设置9个变量对每个权限(ownerRead,ownerWright,ownerExecute,groupRead,...)如果我要做到这一点,我会用蛮力方法如下所示:

statInfo = os.stat
permissions = stat.S_IMODE ( os.stat ( 'fooBar.txt' ).st_mode )
octPermissions = oct ( permissions )

ownerRead = octPermissions [1] >= 4
ownerWrite = octPermissions [1] == 2 or octPermissions [1] == 6 or octPermissions [1] == 3 or 
ownerExecute = octPermissions [1] …
Run Code Online (Sandbox Code Playgroud)

python permissions octal stat

6
推荐指数
2
解决办法
3392
查看次数

重新映射Vim键以避免左手RSI

我的左手腕总是受到RSI的影响(见这里),我认为这是因为与按下ctrl和shift键相关的扭转动作.因此,我继续购买了下面显示的Advantage Kinesis键盘:

在此输入图像描述

然而,即使使用这个键盘和脚踏板,并将shift键映射到Back Space,我仍然有RSI,再次只在我的左手.然后它对我来说很明显,大量的运动键与左手相关联.这是右边的东西,然后是左手的非详尽列表.

右手:

  • p 一个简单的粘贴语句,几乎总是单独使用
  • o 在当前行上方/下方写入,几乎总是单独使用
  • i 写入光标,几乎总是单独使用
  • u 撤消,几乎总是单独使用
  • y抽出,用于与运动命令,但只能在右侧的几个运动符(即(,),i...)
  • h,j,k,l,单个字符的运动,很少使用.

现在观察

左手:

  • w,e,b运动一个字.经常与数字一起使用,或多次按下.
  • t,f,$所有结合键等y,dv
  • Ctrl w+ h,j,k,或者l,移动窗口,并要求用你的左手一个跃动.
  • Ctrl x Ctrl f 全方位完成(IIRC)
  • Ctrl f Ctrl g 在光标下查找文件

现在我确信这是一个有偏见的列表,但它得到了我的观点,大量常用的动作键和一些其他困难的组合位于键盘的左侧.

我的问题是,是否有一种非重塑的方式来做到这一点?例如,有没有任何图书馆这样做?如果没有,如果我切换到DVORAK,这会解决我提到的任何问题吗?

vim ergonomics remap

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

VLC不输出视频,仅输出音频

我试图从源代码安装VLC,以便利用树莓派的硬件(问题是软件而已,因此为什么我问这里)按照这些指令.我已设法安装它,但是,我看不到任何视频,只听到音频.我可以通过两种方式启动视频,如果我在没有硬件使用的情况下启动它,通过vlc filename,我得到以下错误,我看不到启动窗口,但我听到了音频.如果我用硬件使用启动它,通过vlc --vout omxil_vout filename,我仍然会得到相同的错误,但我确实看到一个窗口启动,它显示电影名称,我听到音频,但是,窗口是完全黑色的.

错误(当作为详细运行时.另请注意,X11错误与我现在正在运行putty的事实有关,但我得到相同的错误):

VLC media player 2.2.0-git Weatherwax (revision 2.1.0-git-1098-g5e5a9ad)
[0xab89e8] main libvlc warning: cannot read /home/raspi/downloads/vlc/src/.libs/vlc/plugins/plugins.dat (No such file or directory)
[0xb3cb18] main interface error: no suitable interface module
[0xab89e8] main libvlc error: interface "globalhotkeys,none" initialization failed
[0xb3caf0] dbus interface error: Failed to connect to the D-Bus session daemon: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
[0xb3caf0] main interface error: no suitable interface module
[0xab89e8] main …
Run Code Online (Sandbox Code Playgroud)

debugging vlc movie

6
推荐指数
0
解决办法
2198
查看次数

将选项卡名称和 ConqueShell 与 Vim 会话一起保存

有没有办法让 vim 在发出命令时保存选项卡名称(通过选项卡名称脚本分配)和/或终端模拟器(通过Conque Shell 脚本设置):mksession [fileName]

观察下面(放大),左侧有一个工作会话,vim -S fileName右侧有通过命令加载的同一会话。分配的选项卡标签恢复为绝对路径,ConqueShell 终端被解释为文件。

会话失败

vim shell plugins tabs

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

使用 inotify 跟踪系统中的所有文件

题:

可以inotify用来在 [linux] 系统中可靠地记录文件吗?

细节:

我正在尝试用于inotifywait跟踪用户移动(目前使用 bash,但有人建议我迁移到脚本语言)。最终,我想在创建时将新文件添加到数据库 ( create, moved_from),在文件修改时更新数据库中的现有行 ( modify, attrib, move_to),最后在文件删除时删除一行 ( delete)。然而,我遇到了许多问题,即使是像save这样看似简单的操作,也会生成许多​​ inotifywait 消息。观察以下命令及其输出(注意, 的使用/home/user/仅用于示例目的):

例子:

示例 1:监听文件创建:

$ inotifywait -mr /home/user/ -e create  --format %w:%f:%e:%T --timefmt %T
Run Code Online (Sandbox Code Playgroud)

触碰:

$touch test.txt
/home/user/:test.txt:CREATE:21:35:30
Run Code Online (Sandbox Code Playgroud)

用 vim 打开一个新文件,然后发出 :w 命令:

$vim test2.txt
/home/user/:test2.txt:CREATE:21:35:30
Run Code Online (Sandbox Code Playgroud)

使用 vim 打开现有文件,然后发出 :w 命令:

$vim test2.txt
/home/user/:4913:CREATE:21:35:30
/home/user/:test2.txt:CREATE:21:35:30
Run Code Online (Sandbox Code Playgroud)

用 gedit 打开一个新文件,然后点击保存:

$gedit test3.txt
/home/user/:test3.txt~:CREATE:21:35:30
Run Code Online (Sandbox Code Playgroud)

使用 gedit 打开现有文件,然后单击保存:

$gedit test3.txt …
Run Code Online (Sandbox Code Playgroud)

database file inotify

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

使用vim远程编辑serverB上的文件,只能从serverA访问

虽然我从未尝试过这个,但显然可以按照此处的描述在vim中远程编辑文件.在我的特殊情况下,我需要访问的服务器只能从校园访问,因此我必须登录我的大学帐户,如下所示:

ssh user@login.university.com
Run Code Online (Sandbox Code Playgroud)

然后从那里登录到安全服务器,如下所示:

ssh user@secure.university.com
Run Code Online (Sandbox Code Playgroud)

我有无密钥ssh设置,所以我可以像这样自动化这个过程:

ssh user@login.university.com -t "ssh user@secure.university.com"
Run Code Online (Sandbox Code Playgroud)

无论如何远程编辑文件,例如secure.university.com/user/foo.txt在我的本地机器上?

编辑:

我的意图是在我的本地机器上使用vim,因为它是不切实际的(移动.vim folder,复制.vimrc),在某些情况下是不可能的(使用某些设置重新编译vim,修补vim源,安装语言美化器)以使远程机器上的vim表现得像我一样希望它表现得好.我想要的是发出这样的东西(这不是准确的scp,我知道)

vim scp://user@login.university.com scp://user@secure.university.com//home/user/foo.txt
Run Code Online (Sandbox Code Playgroud)

vim ssh scp remote-access

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

在线程中使用 psycopg2 游标的正确方法是什么?

我觉得我的问题的答案就在这两个问题中,但我发现答案的措辞非常糟糕(或高于我的薪资等级)

  1. 多线程 python psycopg2
  2. PostgreSQL 中的事务是通过psycopg2每个游标还是每个连接进行的?

问题:使用 psycopg2 确保线程安全的正确方法是什么

选项1:每个线程都有自己的游标

import threading
import psycopg2

conn = psycopg2.connect (
    host=127.0.0.1,
    user='john',
    password='1234',
    dbname='foo',
    port=1234)

class Foo (threading.Thread):
    def __init__ (self):
        threading.Thread.__init__(self)

    def run (self):
        global conn

        cur = conn.cursor()
        sql_query="SELECT * from foo;"
        print(cur.execute (sql_query))
        conn.commit()

num_threads = 100
threads = []

for i in seq (num_threads):
    threads.append (Foo())

for i in seq (num_threads):
    threads[i].start()

for i in seq (num_threads):
    threads[i].join()
Run Code Online (Sandbox Code Playgroud)

选项 2:每个线程都有自己的连接

import threading
import psycopg2

db_conn …
Run Code Online (Sandbox Code Playgroud)

postgresql psycopg2 python-3.x psql

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