เมื่อฉันออกจากเชลล์ R แบบโต้ตอบมันจะแสดงข้อความแจ้งที่น่ารำคาญทุกครั้ง:
> > บันทึกภาพพื้นที่ทำงานไหม [y / n / c]: น
ฉันมักจะตอบว่า "ไม่" เพราะถ้าฉันต้องการบันทึกงานของฉันฉันจะทำก่อนที่จะพยายามออก
จะกำจัดพรอมต์ได้อย่างไร?
หมายเหตุ: ดู ?save.image
เมื่อฉันออกจากเชลล์ R แบบโต้ตอบมันจะแสดงข้อความแจ้งที่น่ารำคาญทุกครั้ง:
> > บันทึกภาพพื้นที่ทำงานไหม [y / n / c]: น
ฉันมักจะตอบว่า "ไม่" เพราะถ้าฉันต้องการบันทึกงานของฉันฉันจะทำก่อนที่จะพยายามออก
จะกำจัดพรอมต์ได้อย่างไร?
หมายเหตุ: ดู ?save.image
R --vanilla
q()
ฟังก์ชันที่กำหนดเองใน. rprofie: stackoverflow.com/a/13043239/180892
คำตอบ:
คุณสามารถส่งผ่าน--no-save
อาร์กิวเมนต์บรรทัดคำสั่งเมื่อคุณเริ่ม R หรือคุณสามารถแทนที่q
ฟังก์ชัน:
utils::assignInNamespace(
"q",
function(save = "no", status = 0, runLast = TRUE)
{
.Internal(quit(save, status, runLast))
},
"base"
)
ใส่รหัสด้านบนใน. Rprofile ของคุณเพื่อให้ถูกเรียกใช้เมื่อเริ่มต้นทุกเซสชัน
ยังไม่พบโซลูชัน Linux ที่ง่ายที่สุด :)
ใน Ubuntu ให้เพิ่มบรรทัดต่อไปนี้ใน~/.bashrc
:
alias R='R --no-save'
ทุกครั้งที่คุณเริ่มคอนโซล R R
มันจะถูกส่งผ่าน--no-save
ตัวเลือก
R --vanilla
Combine --no-save, --no-restore, --no-site-file, --no-init-file and --no-environ
คุณสามารถออกจากพรอมต์" Save workspace image? " โดยใช้Ctrl+Dไฟล์.
ดังนั้นหากคุณทำCtrl+Dสองครั้งใน R แบบโต้ตอบคุณจะออกจาก R โดยไม่บันทึกพื้นที่ทำงานของคุณ
(ทดสอบบน Linux และ OS X)
หากคุณใช้ Rgui ให้คลิกขวาที่ไอคอนที่คุณใช้เพื่อเริ่ม R และคลิกที่ "Properties" จากนั้นเพิ่ม --no-save ในคำสั่งที่เริ่ม R
(จากhttp://tolstoy.newcastle.edu.au/R/help/05/03/1115.html )
หากคุณใช้โปรแกรมแก้ไขอื่นที่ไม่ใช่ Rgui คุณต้องส่ง --no-save ไปที่บรรทัดคำสั่ง R เมื่อเริ่ม R
เขียนทับตัวเลือกเริ่มต้นสำหรับบันทึกอาร์กิวเมนต์ของฟังก์ชันออก
formals(quit)$save <- formals(q)$save <- "no"
ใส่บรรทัดนี้ใน. Rprofile
แก้ไข: เพิ่มq
ดังนั้นจึงไม่มีข้อความแจ้งไม่ว่าจะใช้ตัวแปรใด
รับสิ่งที่ดีที่สุดจากทั้งสองกลยุทธ์ที่กำหนดโดยผู้ใช้1และ2 :
ค่าเริ่มต้นที่จะไม่บันทึกโดยเพิ่มบรรทัดต่อไปนี้ใน ~ / .bashrc ของคุณ:
alias R='R --no-save'
แต่ให้วิธีง่ายๆในการประหยัดเมื่อออกโดยเพิ่มสิ่งนี้ใน ~ / .Rprofile:
qs <- function(save="yes") { q(save=save)}
ตอนนี้q()
จะออกโดยไม่บันทึกหรือแจ้ง แต่qs()
จะบันทึกและออก (โดยไม่ต้องแจ้ง)
wq <- function() { q(save="yes")}
จะสะท้อนให้เห็นถึง vi (เช่นกันหากคุณกำลังเขียนฟังก์ชันเขียนทับทำไมไม่ทำให้มันส่งอาร์กิวเมนต์คงที่)
คุณสามารถเพิ่มqq()
ฟังก์ชันลงในไฟล์. Rprofile ได้อย่างง่ายดาย
qq <- function(save="no") { q(save=save)}
ฉันคิดว่าตัวเลือกการบันทึกมีให้ใช้งานได้ แต่คำตอบของ Joshua นั้นดีที่สุด
ถ้าเช่นฉันการพิมพ์วงเล็บทั้งคู่ดูเหมือนจะพยายามมากเกินไปในการออกจากการจำลองคุณสามารถลองสิ่งนี้:
exit <- structure(list(), class = "exit_command")
print.exit_command <- function(...) {
q("no") # exit without saving
}
สิ่งนี้จะสร้างคลาสใหม่ซึ่งทำให้ R ออกจากการทำงานเมื่อพยายามพิมพ์คลาสดังกล่าว ผลที่สุดคือถ้าคุณเรียกใช้exit
ใน R repl ทุกอย่างจะออก (เพราะมันพยายามพิมพ์)
หมายเหตุ: คุณสามารถเพิ่ม~/.Rprofile
เพื่อโหลดเมื่อเริ่มต้นทุกเซสชัน
เพียงแค่หลีกเลี่ยงข้อความแจ้งโดยพิมพ์q('no')
แทน
คุณสามารถสร้างนามแฝงสำหรับคำสั่ง R:
ใช้ทุบตี :alias R='R --no-save'
ใช้ csh: alias R 'R --no-save'
หากคุณรู้สึกผจญภัยมากพอคุณสามารถแก้ไขstartup
ส่วนท้ายได้/usr/bin/R
เช่นเพิ่ม--no-save
ในการโทรของผู้บริหาร save.image()
แต่ถ้าคุณต้องการที่จะประหยัดพื้นที่ทำงานของคุณอย่าลืม
/usr/bin
- และขอไม่แนะนำให้คุณทำเช่นนั้น นั่นคือพื้นที่ของระบบ "ห้ามบุคลากรที่ไม่ได้รับอนุญาต"
/usr
ให้โรบ็อต (ฉันหมายถึงผู้จัดการแพ็คเกจ) เนื่องจากพวกเขาจัดการพื้นที่นั้นแล้ว มีวิธีที่จะไม่รบกวน มิฉะนั้นคุณกำลังแสวงหาการผจญภัยโดยเจตนา