How can I automatically change RStudio's options? - rstudio

I use RStudio on a shared Windows server. I prefer to not have auto-matched parentheses when I code in RStudio. I know I can turn that option off through Tools >> Options >> Code >> Editing >> Insert matching parens/quotes. However, whenever I log onto the server and open RStudio for the first time during a session on that server, all of the changes I made to RStudio's options the last time I was on the server have been reset. Is there a way to ensure that my preferences for RStudio's options persist over time? I do not have admin access to this server, so that may limit my options.
I looked into R profiles and created one to permanently set some options for R, but I did not find any way to set RStudio options that way.
Any help is greatly appreciated!

Global options are stored in a subdirectory described in https://support.rstudio.com/hc/en-us/articles/200534577-Resetting-RStudio-Desktop-s-State. On my Mac it is ~/.rstudio-desktop.
This is not part of the RStudio documented behaviour, so it may change, but I see the setting in the file
.rstudio-desktop/monitored/user-settings/user-settings
This is a plain text file; it looks like YAML to me. The setting you want is in the uiPrefs entry in that file.
What I'd recommend is that you follow the instructions on the web page I mentioned for making a backup of your settings, then restore them when you move to a new machine. If you are very adventurous you could try editing that file, but don't expect it to be easy.

Related

Why does .MSI file open read-only?

I am attempting to open a .MSI installer package file to modify it. Whenever I try to open it, it opens in read-only mode. I see this with Orca, with InstEd, or when opening the file directly via code:
`MsiOpenDatabase()` (ERROR_OPEN_FAILED with MSIDBOPEN_DIRECT or
MSIDBOPEN_TRANSACT persistence modes).
The file itself does not have the read-only attribute set (in fact, has no attributes set)
I am using an account with Administrators group access
As far as I can tell, no other process has the file open
No installs are in progress or suspended
I can copy the file to another location, and open it read/write there. But the original, I cannot touch
Thanks in advance for your help.
My guess is that this is caused by one of the following factors:
Custom NTFS access rights - defined for the file in its security descriptor
The file might be "blocked" - marked with a special flag after being downloaded via Internet Explorer.
The resolution for the latter is to right click the file and select properties and click the unblock button at the bottom of the property page and pressing OK.
The resolution for custom NTFS rights are done in a similar way by going into the security
tab of the property page for the file, but it is easier just to copy and paste the file and use the fresh copy with the default security.
Found it.
#Glytzhkof, you almost had it but there's a detail I did not know about, and left out. This is a package that lies in a folder under "access protection" by my system's anti-virus program: a filesystem hook that blocks modification of critical system and AV files. Turn off access protection temporarily, and the file is wide open.
Fortunately, one of my teammates had some experience with this, and suggested I try it. Bingo.
Thanks, all.
What I have done to get it working was to create first a backup of the MSI file, and then open that backup. It worked for me
Try to close/kill processes that might interfere, for example:
Other running Install shield instances
Installshield updater
Installshield licensing service
Antivirus

PhpStorm 5 saving watches and a single file

I have two questions on PhpStorm 5.
1) Can Watches be saved along with a debug configuration, so I don't have to re-create them every time I close and re-open the software? I have noticed that watches may be deleted by the software even during a working session.
2) Is there a way to save just a single file instead of saving all of the open files (only 'Save All' function exists).
1. Unfortunately No. Watches got deleted as soon as debug tool window is closed.
Corresponding ticket: http://youtrack.jetbrains.com/issue/IDEA-42954
UPDATE: Yes, this is now possible as of version 10 or so -- the aforementioned ticket has been implemented so all watches are now saved together with Run/Debug Configuration that was used to launch the debug.
2. Yes, you can -- but only since PhpStorm v7. But that still makes little to no difference as all other files will be saved anyway on standard occasion (change setting; run/re-run something etc -- same logic as before -- you cannot close editor tab and reject all changes automatically or be asked if file must be saved or not).
More details in this SO answer: https://stackoverflow.com/a/19147691/783119

Can Notepad++ automatically upload local files to the server when I save?

I use Notepad++ with its NppFTP plugin. I am required to keep local copies up to date, so I edit the local files then upload them to the server. I'm wondering if there is a way for Notepad++ to automatically upload the file to the server as soon as I save it, without me having to press another button.
I'm open to using other FTP programs but I would rather stick with Notepad++ as the text editor
I know this question is slightly dated, but I would just like to put out there to alleviate future confusion for anyone who tries to find an answer to this question that as far as I know, NppFTP currently does this by default. There is a window beneath the main file view area that informs you of current FTP operations. Dreamweaver has started crapping out on me regularly so I had to find an equally powerful solution; it seems like Notepad++ just might be that!
Instead of trying to do this solely with Notepad++, I've gotten a similar workflow using Filezilla as well.
I set Notepad++ as my default text editor (Edit -> Settings -> File Editing -> Use Custom Editor) in Filezilla.
I can right-click on a local file (in Filezilla) and press "edit". Whenever I save the file in Notepad++, Filezilla detects the difference and prompts me to upload the file.
Will reply back to this post once I can get this process to be completely automatic.
Researching about same problem , i found from the Notepad++ Plugin Manager NppNetNote plugin. It allow you to edit both files at time (Local and remote) wich is like edit local and publish.
Edit: I'm sorry. Mistake. Now that plugin is called NppDocShare, and acts as server/client for a live document. You can edit a file from two locations (Notepad++ executions) at twice, but cannot edit two files nor emulates the autoupload.
I'd try the #Gabriel Ryan Nahmias and he's just RIGHT. The NppFTP plugin does that you wanna, but is a little tricky (obvious when you do) to configure.
By default, the program uses a variable path (Global cache: %CONFIGDIR%\Cache\%USERNAME%#%HOSTNAME%) to store the local copy that is uploaded at save. You need to create a pair folder when create a ftp CONNECTION PROFILE to say to NppFTP plugin how you wanna threat the file/connection. Otherwise, the ftp file goes to global.
Once the profile is created, i.e; C:\myfolder\ vs / (/ is relative to ftp) any file Edited or Created will be created/autouploaded to FTP at save. Also, you can open the FTP file, and it will be threated as the local one. Untill you save that, the real local file is not overwritten. If you dont like the file from FTP, simply close file and open from the local folder. So, you can chose which document wanna edit at start :)
Works Like Magic. Now im in love with Notepad++ :)
Extra: The subfolder creation is not magic. This only works from FTP to Local. You can edit a file from FTP subfolder and the folder plus file will be reproduced into local. No way to create from Local to FTP. You must create the ftp subfolder by hand :X (Unexpected)
You can manage files by two ways. Creating a profile per folder/proyect or create multiple local cache directories to a single profile. BUT, only the first one will be available (You will reorder it on each use). No magic here :( and it's more easy to create profiles and choose from the droplist at connect.
Anyway, i think the NppFTP is doing the things very well.
I had the same problem. Solved updating the NppFTP plugin to the latest stable version.
Cheers!

Getting a Scripting.FileSystemObect error from local VBscript in IE8

I'm currently working on laptops that go in Police Cars. They run an app called IMobile which is an extension of our CAD system, and allows them to do vehicle lookups, get more info on a call, etc.
The IMobile app is basically an IE overlay and it uses htm files that are on the local laptop. We've added in some simple VBScripts that do various tasks. Some common functions that are required for these tasks are in a VBscript called PoliceFunctions.vbs which is included in the same directory as all the other scripts. This method worked fine in previous versions of IE and Windows, however we're getting scripting errors in Windows 7 with IE8, specifically, 'ActiveX component can't create object: "Scripting.FileSystemObject"' and it references the functions script mentioned above.
If I set IE's settings to allow it to run ActiveX controls not marked as safe, the script runs fine, however I don't want do open a large security hole. I've tried adding localhost and the directory to the Trusted Sites list with no effect. I've tried re-registering SCRRUN.dll as mentioned in another post as well as wscript -regserver. And I've changed IE's settings to allow local Active Content with no success.
Anyone have any other ideas of how I can allow this script to run without opening a large security hole or having it nag the end user that his IE settings are going to bring about the apocolypse?
The explanation is long but explains how IE uses security zones to make trust decisions.
The URLAction of interest in this case is:
1201 Initialize and script ActiveX controls not marked as safe(URLACTION_ACTIVEX_OVERRIDE_OBJECT_SAFETY)
The default setting for this URLAction in the Local Machine zone is Prompt, and in all other zones it is Disable. Only if you change that setting to Enable will you bypass the prompt. You cannot use the Internet Control Panel to adjust the security settings for the Local Machine zone because only the other four zones are shown in this UI. To change the setting for the Local Machine zone, you can edit the registry key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0
Change the value for entry 1201 from 1 to 0
Write an ActiveX, implement IObejctSafety and wrap FSO methods in it. Note this is lying about the ActiveX's scripting safety but it is better than open to every unsafe ActiveX.
As the app "uses htm files that are on the local laptop" you could try to switch to a .hta application. For a quick test, just rename the *.html to .hta; if it 'works' add a suitable hta:application tag. To start

GVim runs very slowly when editing files on a windows share

On my computer at work, any time I open a file located on a network share, GVim becomes completely unusable. Scrolling through the document can take 15 seconds to go one "page". Even using the movement keys to go from one word to another can take 2 to 3 seconds. This seems to be a new behavior, but for the life of me I can't remember changing anything that would cause it. I'm under the impression that Vim doesn't actually access a file except on open and on save. Is that right?
There are a few factors which may affect this.
First, make sure you have Vim setup to prefer storing the swapfile locally. If your $HOME is on a local drive, I tend to put this in my vimrc (which will either be at $HOME\_vimrc or $VIM\_vimrc). Make sure you create that directory, otherwise Vim will continue to use one of the other directories in the list.
set directory^=$HOME/tmp
This prepends the $HOME/tmp directory to the start of the list that Vim checks for where to place swapfiles.
Second, do the same for the backup file that Vim creates. Same situation as above but the option you'll be changing is backupdir instead of directory.
Third, make sure you disable the matchparen plugin. This plugin is new to Vim 7, so you may be used to using an older version of Vim. This causes frequent scanning of the file for matching parens, braces, etc. which can drastically slow Vim down when the file is on a network share. Again, this should go in your vimrc.
let g:loaded_matchparen = 1
If you only want to disable the plugin temporarily, you can use the command :NoMatchParen and then :DoMatchParen to re-enable it later in that Vim session.
Finally, if none of those help you can always copy the file locally and edit it.
Swap file has nothing to do with it. I have my swap file local and still have the problem. I use Process Monitor from SysInternals.com and it revealed bad behavior when attempting to open "\server\TestTool\foo\ReadMe.TXT"
It first attempts a CreateFile (aka, Directory open) on "\serve\". Notice the last character is missing. This will cause 4 seconds to time out with "OBJECT PATH INVALID".
Then it tries CreateFile on "\server\TestToo\". Server name is correct by the last letter of "TestTool" is clipped. Again, a 3 second time out with "BAD NETWORK NAME".
Finally it gets it right and calls CreateFile on "\server\TestTool\" which works right away.
Then CreateFile on "\server\TestTool\foo" which works right away.
Then CreateFile on "\server\TestTool\foo\ReadMe.TXT" which works right away.
WHY is it trying bad names for the server and the root directory??? What madness is this?
I fixed this issue after setting HOME path by force in advanced system settings.
(Your current HOME path would be a network directory.)
Control Panel > All Control Panel Items > System > Advanced system settings > Environment variables
Press "New..."
Variable name: HOME
Variable value: c:\Home\ **<-- Type your home directory**
A follow up on jamessan's answer: to disable the plugin automatically when you edit files on a share, put this line in you _vimrc
autocmd BufReadPre //* :NoMatchParen
You could consider installing LargeFile plugin. It disables a couple of features impacting the performance.
Having a similar issue as David Anderson, but no solution yet.
When loading \\ServerName\A$\B\C\File.txt Vim will do:
Open \ServerName\A$\B\C\File.txt
Then it does many loops like:
CreateFile \ServerName\A$ <-- Each taking roughly 1 sec
QueryDirectory \ServerName\A$\B
QueryDirectory \ServerName\A$
QueryDirectory \ServerName\A$\B\C
QueryDirectory \ServerName\A$\B
To compare with Notepad++ which loads files almost instantaneously there are more lines and Notepad++ never queries \\ServerName\A$.
Also the duration (Duration column) written in Process Monitor is low, but the time taken by Vim seem quiet high (Time of Day column) for the CreateFile \\ServerName\A$.
I've no plugins installed as far as I know and followed other tips to speed up network shares loading.
Note: The dollar is in the path. More weird is that Vim will load very fast on more recent Windows Server (2008 instead of 2003) with the same folder structure.
I had the same problem (slow gvim editing over network drive) and have fixed it. It was for me -- no kidding -- the titlestring.
Background: I use a vertically arranged taskbar with Windows 10. This has the advantage that my open windows behave like a growing stack from top to bottom. For example, see here some currently open windows with how-to-run.txt as a network file:
With that it makes sense, that the filename is going first in the window title of gvim and the path goes after that. So I used exactly the titlestring in my vimrc, which is still officially recommended in the help file vim81/doc/options.txt, line 8202:
set titlestring=%t%(\ %M%)%(\ (%{expand(\"%:~:.:h\")})%)%(\ %a%)
For local files that's ok, but for network files this is way too slow.
Now my fix:
set titlestring=
Same effect (filename first), but now gvim runs very fast for remote files as well!
BTW, I also tried all the above mentioned recommendations (directory, backupdir, matchparen, disabled all the plugins, tried the LargeFile plugin although I observed the slow gvim also for small files, etc.). I also changed my statusline to something really simple.
It all had no effect for me. But the funny titlestring...

Resources