我有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中的Show Marks插件来显示标记的位置.可以使用该\mt命令打开/关闭显示的标记.当我第一次打开文档时,标记是这样的:

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

我有三个问题:
这是.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) 我是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)
文件表: …
如何有效地使用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) 我的左手腕总是受到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,d或vw+ h,j,k,或者l,移动窗口,并要求用你的左手一个跃动.x Ctrl f 全方位完成(IIRC)f Ctrl g 在光标下查找文件现在我确信这是一个有偏见的列表,但它得到了我的观点,大量常用的动作键和一些其他困难的组合位于键盘的左侧.
我的问题是,是否有一种非重塑的方式来做到这一点?例如,有没有任何图书馆这样做?如果没有,如果我切换到DVORAK,这会解决我提到的任何问题吗?
我试图从源代码安装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) 有没有办法让 vim 在发出命令时保存选项卡名称(通过选项卡名称脚本分配)和/或终端模拟器(通过Conque Shell 脚本设置):mksession [fileName]?
观察下面(放大),左侧有一个工作会话,vim -S fileName右侧有通过命令加载的同一会话。分配的选项卡标签恢复为绝对路径,ConqueShell 终端被解释为文件。

可以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) 虽然我从未尝试过这个,但显然可以按照此处的描述在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) 我觉得我的问题的答案就在这两个问题中,但我发现答案的措辞非常糟糕(或高于我的薪资等级)
问题:使用 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) vim ×5
database ×1
debugging ×1
ergonomics ×1
file ×1
inotify ×1
jslint ×1
movie ×1
mysql ×1
octal ×1
permissions ×1
plugins ×1
postgresql ×1
psql ×1
psycopg2 ×1
python ×1
python-3.x ×1
remap ×1
scp ×1
shell ×1
ssh ×1
stat ×1
tabs ×1
vim-plugin ×1
vlc ×1