วิธีการแปลง ^ M linebreak เป็น 'ปกติ' linebreak ในไฟล์ที่เปิดในกลุ่ม?


481

เป็นกลุ่มที่แสดงให้เห็นในทุก ๆ ตอนจบ ^ M

ฉันจะทำอย่างไรเพื่อแทนที่ด้วย linebreak 'ปกติ'?



3
โปรดเปลี่ยนวิธีการแก้ปัญหาให้เป็นการเปลี่ยนแปลงรูปแบบไฟล์เนื่องจากเป็นโซลูชันที่สะอาดที่สุด
erikbwork

1
ฉันรู้ว่าคำถามนี้เกี่ยวกับเสียงเรียกเข้า แต่การค้นหาอื่น ๆ ของ Google ก็มีอยู่ในชุดข้อความนี้ ดังนั้นหากคุณติดตั้ง Eclipse บนระบบของคุณคุณสามารถแปลงตัวคั่นบรรทัดสำหรับไฟล์เดียวหรือแผนผังโฟลเดอร์ของไฟล์ที่สมบูรณ์ด้วยการคลิกเพียงไม่กี่ครั้ง: stackoverflow.com/a/7019737/1364747
Teddy

ฉันชอบวิธีที่คุณเรียกการแบ่งบรรทัดปกติ "ปกติ" - ในทางตรงกันข้ามกับการแบ่งบรรทัด ^ M :-)
DerMike

คำตอบ:


134

นี่เป็นสิ่งเดียวที่ใช้ได้สำหรับฉัน:

: e ++ ff = dos

พบได้ที่: http://vim.wikia.com/wiki/File_format


ทำงานบน windows7 Vim7.4
schuess

19
:e ++ff=dosตามด้วย:set ff=unixจะแปลงตอนจบเป็นรูปแบบมีเหตุผล
Mateen Ulhaq

คำตอบของโซลูชันไม่ทำงานสำหรับฉันมีเพียงคำสั่ง @MateenUlhaq เท่านั้นที่ช่วยฉันได้
Edenshaw

577

คำสั่ง

:%s/<Ctrl-V><Ctrl-M>/\r/g

ในกรณีที่<Ctrl-V><Ctrl-M>หมายถึงประเภทCtrl+ Vแล้ว+ CtrlM

คำอธิบาย

:%s

ทดแทน,% = ทุกบรรทัด

<Ctrl-V><Ctrl-M>

อักขระ ^ M (Ctrl-V เป็นวิธี Vim ในการเขียนอักขระ Ctrl ^ และ Ctrl-M เขียน M หลังจากนิพจน์ปกติส่งผลให้มีอักขระพิเศษ ^ M)

/\r/

กับบรรทัดใหม่ ( \r)

g

และทำทั่วโลก (ไม่ใช่แค่เกิดขึ้นครั้งแรกในบรรทัด)


21
มันลบอักขระ ^ M แต่ไม่ได้แทรกการขึ้นบรรทัดใหม่
luckytaxi

14
@jumpnett - คุณต้องกดคีย์คอร์ด Ctrl-V / Ctrl-M อย่าป้อนข้อความนั้นเป็นข้อความต่อเนื่อง
LeopardSkinPillBoxHat

33
นี่คือคำตอบที่ถูกต้องสำหรับคำถามถ้าคุณมี ^ M ตามด้วยบรรทัดใหม่คุณต้องการเก็บบรรทัดใหม่ แต่ลบ ^ M ทำการทดแทนอื่น ๆ ด้านล่างเว้นวรรคสองไฟล์ของคุณ
dlamblin

12
หากคุณยังไม่มีการคืนรถ (เช่น ^ M ถูกลบออก แต่ทุกอย่างถูกห่อในบรรทัดเดียว) ให้ทำ: :%s/<Ctrl-V><Ctrl-M>/\r/g(โดยที่ \ r แทนที่ ^ M ด้วยบรรทัดใหม่)
William Turrell

7
หากคุณใช้ Vim บน Windows คุณจะต้องใช้ <Ctrl-Q> แทน <Ctrl-V>
GrandAdmiral

418

บน Linux และ Mac OS งานต่อไปนี้

:%s/^V^M/^V^M/g

ที่^V^MประเภทวิธีCtrl+ Vแล้ว+CtrlM

หมายเหตุ: บน Windows คุณอาจต้องการใช้^Qแทน^Vเนื่องจาก^Vจะถูกแมปเพื่อวางข้อความ


3
ทำไมสิ่งนี้ถึงได้รับการโหวต? ใช้งานได้แม้ไฟล์ของคุณจะถูกบดไปยังหนึ่งบรรทัดเพราะมันมีจุดสิ้นสุดผิด
Paul Tomblin

2
ไม่ได้ทางของฉันจะแทนที่สิ่งใดก็ตามที่เป็นจุดสิ้นสุดบรรทัดในไฟล์ด้วยการสิ้นสุดบรรทัดที่ถูกต้อง
Paul Tomblin

7
นี่เป็นปัญหาที่แตกต่างกันเมื่อไฟล์ของคุณไม่มีบรรทัดใหม่ในไฟล์ซึ่งฉันจะยอมรับว่าเป็นเรื่องปกติ FYI ^ M สามารถจับคู่ได้โดย \ r
dlamblin

12
นี่เป็นคำสั่งที่ลึกลับอย่างยิ่ง แต่มันใช้งานได้ดีสำหรับ mac
Eric Walker

5
ฉันพบว่าสิ่งที่เทียบเท่า%s/\r/\r/gทำงานได้ดีบน MacVim สำหรับไฟล์ที่แสดงเฉพาะ^Mที่ส่วนท้ายของบรรทัด (หนึ่งบรรทัดที่ยาวในเงื่อนไข MacVim) ชัดเจน \ r หมายถึงสิ่งต่าง ๆ ในรูปแบบเทียบกับชิ้นส่วนทดแทนของคำสั่งนี้
RichVel

184

ภายในvimดูรูปแบบไฟล์ - DOS หรือ Unix:

:set filetype=unix

:set fileformat=unix

ไฟล์จะถูกเขียนกลับโดยไม่มีอักขระ carriage return (CR, ^ M)


3
use: set fileformat = unix สำหรับไฟล์คอนฟิกูเรชันส่วนใหญ่จะเปลี่ยนเฉพาะประเภทของไวยากรณ์ที่ใช้
derGral

6
สิ่งนี้แก้ไขข้อผิดพลาดที่ฉันมี ... เริ่มคิดว่าไฟล์ที่ฟอร์แมต UNIX ของฉันคือ windows และบรรทัดที่เพิ่งเปลี่ยนใหม่แสดงเป็น ^ M ในคอมไพล์ diff
โทมัสฮันเตอร์ II

จะต้องขึ้นอยู่กับระบบ วันนี้อันนี้ใช้ได้ คำสั่ง set เสร็จสิ้นภายใน vim, btw
gbarry

1
เยี่ยมมากเพราะรูปแบบไฟล์เป็น dos ให้ตั้งเป็น unix และมันก็โอเค
zhaozhi

3
นอกจากนี้ยังสามารถใช้งานกับset ff=unixftfiletype
BT BT

110

ไฟล์ที่ฉันสร้างขึ้นด้วย BBEdit ที่เห็นในMacVimแสดง^Mผลตอบแทนเป็นจำนวนมากแทนที่จะเป็นไฟล์ธรรมดา การแทนที่สตริงต่อไปนี้สามารถแก้ไขปัญหาได้ - หวังว่านี่จะช่วยได้:

:%s/\r/\r/g

เป็นเรื่องที่น่าสนใจเพราะฉันกำลังแทนที่ตัวแบ่งบรรทัดด้วยอักขระตัวเดียวกัน แต่ฉันคิดว่า Vim แค่ต้องการให้แสดงใหม่อย่างถูกต้อง ฉันสนใจที่จะทราบกลไกพื้นฐานของการทำงานนี้


1
มีแนวโน้มที่ฟังก์ชั่นการค้นหาจะยอมรับกฎที่กว้างขึ้นสำหรับการรับรู้ลำดับท้ายของบรรทัด แต่ \ r มีความหมายเฉพาะเมื่อมันถูกเขียนเป็นข้อมูล
gbarry

สิ่งนี้ใช้ได้กับฉันใน Windows gVim เพื่อคัดแยกไฟล์ที่ไม่มีตัวแบ่งบรรทัดเพียง ^ M จำนวนมากแทน
แฟลช

2
จากโซลูชันทั้งหมดที่มีในหน้านี้นี่เป็นรูปแบบเดียวที่ทำงานกับฉันในการลบ ^ M ออกจากไฟล์ csv ใช้ MacVim
B6431

+1 ทำงานให้ฉันด้วยขณะที่ SSHing กับ Ubuntu เชื่อถือได้จาก Windows โดยใช้ Mobaterm
Carl

ดังนั้นนี่จึงเป็นการแทนที่\rตัวละครทั้งหมดด้วย\nแม้จะระบุ\rว่าเป็นการแทนที่ ไม่บ่นนั่นคือสิ่งที่ฉันต้องการ แค่แปลก ๆ
โดนัท

34

ขั้นแรกให้ใช้:set ff?เพื่อหารูปแบบไฟล์ที่ไฟล์ของคุณเป็น

ฉันเดาว่าอาจเป็นไปได้unixปัญหาก็คือไฟล์ของคุณถูกสร้างขึ้นด้วยfileformat=dosการเพิ่ม "^ M ^ J" ลงในส่วนท้ายบรรทัด แต่อ่านด้วยflieformat=unixการลบเฉพาะ "^ J" ออกจากปลายบรรทัดโดยปล่อย "^ M" ไว้ที่นั่น

เพียงป้อนข้อมูล:e ++ff=dosในบรรทัดคำสั่ง Vim เพื่อเปลี่ยนรูปแบบไฟล์ของคุณจาก unix เป็น dos มันควรจะแก้ปัญหา ถ้าไม่:%s/\r//gควรช่วยคุณออก


3
ฉันต้องทำทั้งสองอย่าง :e ++ff=dosจากนั้น:set ff=unixและ:w
สูงสุด

29

เพื่อให้ได้ตัวอักษร ^ M เพื่อให้ตรงกับที่ฉันต้องมองเห็นมันเลือกแล้วใช้คัดลอก OS คำสั่งไปยังคลิปบอร์ดเพื่อดึงมัน คุณสามารถทดสอบได้โดยค้นหาอักขระก่อนลองคำสั่ง replace

/^M

ควรเลือกบรรทัดแรกที่ไม่ดี

:%s/^M/\r/g

จะแทนที่ errant ทั้งหมด ^ M ด้วย carriage return

นี่เป็นฟังก์ชั่นใน MacVim ซึ่งใช้ gvim 7

แก้ไข:

มีปัญหานี้อีกครั้งในเครื่อง Windows 10 ของฉันซึ่งมี Ubuntu สำหรับ Windows และฉันคิดว่านี่เป็นสาเหตุของปัญหาไฟล์ในรูปแบบสำหรับกลุ่ม ในกรณีนี้การเปลี่ยน ff เป็น unix, mac หรือ dos ไม่ได้ทำอะไรนอกจากการเปลี่ยน ^ M เป็น ^ J และกลับมาอีกครั้ง

การแก้ปัญหาในกรณีนี้:

:%s/\r$/ /g
:%s/ $//g

เหตุผลที่ฉันไปเส้นทางนี้คือเพราะฉันต้องการให้แน่ใจว่าฉันไม่ทำลายไฟล์ของฉัน ฉันสามารถมีได้:%s/\r$//gแต่นั่นจะลบการคืนค่าขนส่งทันทีและอาจมีผลลัพธ์ที่ไม่คาดคิด แต่เราแปลงอักขระ CR เอกพจน์นี่เป็นอักขระ ^ M เป็นช่องว่างแล้วลบช่องว่างทั้งหมดที่ท้ายบรรทัด (ซึ่งสำหรับฉันคือผลลัพธ์ที่พึงประสงค์โดยไม่คำนึงถึง)

ขออภัยในการฟื้นคำถามเก่าที่ตอบกลับมานาน แต่ดูเหมือนว่าจะมีความสับสนเกิดขึ้นและฉันคิดว่าฉันจะช่วยแก้ปัญหานี้เนื่องจากการค้นหาของ Google กำลังสูงขึ้น


1
การกด ctrl-v ctrl-m อาจใช้เพื่อแทรกอักขระได้เช่นกัน fwiw แต่ \ r คือสิ่งที่แทรกการคืนรถที่เหมาะสม
Metagrapher

1
นี่คือคำตอบที่ถูก ดังที่ได้กล่าวไว้ข้างต้นใช้ <ctrl-v> <ctrl-m> เพื่อให้ตัวอักษร ^ M ถูกแทรกในคำสั่ง
carlosayam

1
ฉันเห็นด้วยแม้ว่าฉันจะแน่ใจว่าถ้ามันได้ผลสำหรับฉันในเวลาที่โพสต์ต้นฉบับฉันก็จะไม่โพสต์ ;)
Metagrapher

22

สิ่งเหล่านี้ไม่ได้ผลสำหรับฉันดังนั้นฉันจึงลองทำสิ่งนี้ซึ่งใช้ได้:

ชนิด :%s/

กด CTRL-VCTRL-M

ชนิด //g

กด Enter

ดังนั้นคำสั่งโดยรวมใน Vim shoud จึงดูเหมือน :%s/^M//g

สิ่งนี้จะทำอะไร: :%s(ค้นหาและแทนที่) /^M/(สัญลักษณ์นั้น) /(ไม่มีตัวอักษร) g(ทั่วโลก)


แบงบน !! ทำงานบน Mac
shamail


15

โดยไม่จำเป็นต้องใช้ Ctrl: :%s/\r$//


1
นี่คือวิธีที่ฉันทำเช่นกัน ฉันไม่เคยจำคำสั่ง
pixel 67

นี่เป็นวิธีที่แนะนำในการลบตอนจบเหล่านี้
Metagrapher


12

ฉันทำสิ่งนี้ด้วยใจ:

sed -i -e 's/\r/\n/g' filename


คุณแน่ใจเหรอ ใน OSX: sed -e 's/\r/\n/g' <<< 'over and over'->oven and oven
Armand

ใช่มันใช้งานได้ (ฉันใช้มันเยอะ) แต่บน OSX ถ้าคุณไม่มีรุ่น GNU ของ sed ติดตั้งอยู่แล้วมันอาจไม่ทำงาน รุ่นของ sed ที่ Apple จัดส่งตามค่าเริ่มต้นนั้นแตกต่างกันมาก (เศร้า) กว่ารุ่น GNU ที่จัดส่งบน Linux distros ทั้งหมด ลองอ่านคำตอบสำหรับคำถามนี้เพื่อรับความช่วยเหลือเพิ่มเติม: stackoverflow.com/q/30003570/2062384
Freedom_Ben

ขอบคุณ @Freedom_Ben ดังนั้นดูเหมือนว่าจะใช้งานได้กับ GNU sedแต่ไม่ใช่ BSD sed(ตามที่พบใน OSX) ใครก็ตามที่แก้ไข linebreaks อาจทำงานร่วมกับระบบปฏิบัติการหลายแบบดังนั้นจึงมีประโยชน์ที่จะต้องเข้าใจอย่างชัดเจนว่าคำตอบจะทำงานเมื่อใด
อาร์มันด์

10

เกี่ยวกับแค่: :%s/\r//g ที่ทำงานโดยสิ้นเชิงสำหรับฉัน

สิ่งนี้ทำเพื่อทำความสะอาดจุดสิ้นสุดของทุกบรรทัดมันลบ ^ M และนั่นคือมัน


9

มีคำตอบอื่น ๆ อีกมากมายสำหรับคำถามนี้ แต่ถึงกระนั้นต่อไปนี้ทำงานได้ดีที่สุดสำหรับฉันตามที่ฉันต้องการโซลูชันบรรทัดคำสั่ง:

vim -u NONE -c 'e ++ff=dos' -c 'w ++ff=unix' -c q myfile

คำอธิบาย:

  • โดยไม่ต้องโหลดไฟล์. vimrc ใด ๆ ให้เปิด myfile
  • เรียกใช้:e ++ff=dosเพื่อบังคับให้โหลดไฟล์ทั้งหมดเป็นจุดสิ้นสุดของดอส
  • รัน:w ++ff=unixเพื่อเขียนไฟล์โดยใช้จุดสิ้นสุดบรรทัดยูนิกซ์
  • ออกเป็นกลุ่ม

3
ขอบคุณ! สิ่งนี้แก้ไขปัญหาของฉันและพบว่ามีประโยชน์ที่จะใช้ในสคริปต์
Peddipaga

8

Ctrl+ Mย่อเล็กสุดหน้าต่างของฉัน แต่Ctrl+ Enterแทรก^Mอักขระจริง ฉันต้องแน่ใจว่าจะไม่ถอดCtrlกุญแจระหว่างที่กด

ดังนั้นทางออกสำหรับฉันคือ:

:%s/<Ctrl-V><Ctrl-Enter>/\r/g

ในกรณีที่<Ctrl-V><Ctrl-Enter>หมายถึงการกดค้างไว้ Ctrlกดปล่อยVกดปล่อยEnter, และจากนั้นปล่อยให้เป็นอิสระ Ctrl

หากคุณกำลังทำงานกับไฟล์ที่สร้างโดย Windows

การแก้ปัญหาดังกล่าวข้างต้นจะเพิ่มสายเพิ่มเติมระหว่างบรรทัดที่มีอยู่เพราะมีอยู่แล้วที่มองไม่เห็นหลัง\r^M

เพื่อป้องกันสิ่งนี้คุณต้องการลบ^Mอักขระโดยไม่ต้องแทนที่

:%s/<Ctrl-V><Ctrl-Enter>//g

โดยที่%"ในบัฟเฟอร์นี้" sหมายถึง "แทนที่" /หมายถึง "(ค้นหา) รูปแบบต่อไปนี้" <Ctrl-V><Ctrl-Enter>หมายถึงปุ่มที่จะกดเพื่อให้ได้^Mตัวอักษร (ดูด้านบน) //หมายถึง "ไม่มีอะไร" (หรือ "ด้วยรูปแบบ ระหว่างเครื่องหมายสแลชทั้งสองนี้ซึ่งว่างเปล่า ") และgเป็นความหมายแบบธง " ทั่วโลก "ซึ่งตรงข้ามกับเหตุการณ์แรกในบรรทัด


7

สิ่งนี้ใช้ได้กับฉัน:

  1. ตั้งค่ารูปแบบไฟล์เป็นยูนิกซ์ (การ\nสิ้นสุดบรรทัด)
  2. บันทึกไฟล์

ดังนั้นในกลุ่ม:

:set ff=unix
:w

1
อันนี้ใช้ได้สำหรับฉันในขณะที่คำตอบที่ยอมรับไม่ได้
Marcello Romani

7

ในกรณีของฉัน

ไม่มีอะไรข้างต้นทำงานฉันมีไฟล์ CSV คัดลอกไปยังเครื่อง Linux จาก mac ของฉันและฉันใช้คำสั่งทั้งหมดข้างต้น แต่ไม่มีอะไรช่วย แต่ด้านล่าง

tr "\015" "\n" < inputfile > outputfile

ฉันมีไฟล์ที่ตัวละคร ^ M ถูกขัดจังหวะระหว่างบรรทัดบางอย่างเช่นด้านล่าง

Audi,A4,35 TFSi Premium,,CAAUA4TP^MB01BNKT6TG,TRO_WBFB_500,Trico,CARS,Audi,A4,35 TFSi Premium,,CAAUA4TP^MB01BNKTG0A,TRO_WB_T500,Trico,

5

อีกวิธีหนึ่งคือมียูทิลิตีโอเพนซอร์ซที่เรียกว่า dos2unix และ unix2dos ที่ทำสิ่งนี้ได้ บนระบบ linux อาจถูกติดตั้งตามค่าเริ่มต้น สำหรับระบบ windows คุณสามารถดาวน์โหลดได้จากhttp://www.bastet.com/และอื่น ๆ



4

ใช้ยูทิลิตี dos2unix หากไฟล์ถูกสร้างขึ้นบน windows ให้ใช้ยูทิลิตี mac2unix หากไฟล์นั้นถูกสร้างขึ้นบน mac :)


ไม่เคยได้ยินมาก่อนว่า mac2unix จะมี upvote อีกครั้งถ้าทำได้!
59

Huray! นี่คือวิธีที่จะไป!
ส่วนตัว



1

หากต้องการบันทึกการกดแป้นพิมพ์คุณสามารถหลีกเลี่ยงการพิมพ์Ctrl+ VCtrl+ Mโดยวางสิ่งนี้ลงในแผนที่ เพียงแค่เปิดไฟล์ที่มีอักขระ ^ M ดึงมันแล้ววางลงในบรรทัดเช่นนี้ใน. vimrc ของคุณ:

nnoremap <Leader>d :%s/^M//g<CR>

1

ข้อเสนอแนะเหล่านี้ไม่ได้ผลสำหรับฉันที่มีการจัดการเพื่อรับการขึ้น^Mบรรทัดใหม่ขณะทำงานกับทั้งเสียงเรียกเข้าและ eclipse ฉันสงสัยว่าฉันพบกรณีนอก แต่ในกรณีที่มันช่วยใครก็ได้

:%s/.$//g

และมันก็แยกแยะปัญหาของฉัน


สิ่งนี้จะลบอักขระใด ๆ ที่ท้ายบรรทัด หากคุณมีบรรทัดที่ไม่ใช่ด้วยเหตุผลบางอย่างให้ยกเลิกโดย ^ M ดังนั้นคุณจะลบอักขระนั้นและจะไม่คาดคิด กรณีนี้ไม่ควรเกิดขึ้น แต่ในกรณีที่เป็นและคุณไม่รู้สิ่งนี้คุณสามารถทำให้ไฟล์ของคุณสกปรกอย่างหนักเพื่อระบุวิธี
Metagrapher

1
:g/^M/s// /g

หากคุณพิมพ์^Mโดยใช้Shift+6 Caps+Mจะไม่ยอมรับ

ctrl+v ctrl+mคุณจำเป็นต้องพิมพ์


1

^Mให้แบ่งบรรทัดที่ไม่พึงประสงค์ เพื่อจัดการสิ่งนี้เราสามารถใช้sedคำสั่งดังต่อไปนี้:

sed 's/\r//g'

idk เหตุใดจึงลดลงเป็น -1 ... เพราะใช้ sed คุณสามารถทำการทดแทนแบบเดียวกันภายในเสียงเรียกเข้าและมันควรใช้งานได้
Metagrapher

1

เพียงลบset binary. vimrc ของคุณ!


ในอีกเธรดหนึ่งแนะนำให้ "set binary" เพื่อกำจัดการแทรกอัตโนมัติของบรรทัดใหม่
dexter2305

1

หากต้องการใช้sedบน MacOS ให้ทำสิ่งนี้:

sed -i.bak $'s/\r//' <filename>

คำอธิบาย:$'STRING'ไวยากรณ์ที่นี่เกี่ยวข้องกับเปลือกทุบตี Macs ไม่ถือว่า\rเป็นอักขระพิเศษ โดยการอ้างถึงสตริงคำสั่งซึ่ง$''คุณกำลังบอกให้เชลล์แทนที่\rด้วย\rอักขระจริงที่ระบุในมาตรฐาน ANSI-C


0

ฟังก์ชั่นนี้เก็บรักษารายการการข้าม

fun! Dos2unixFunction()
let _s=@/
let l = line(".")
let c = col(".")
try
    set ff=unix
    w!
    "%s/\%x0d$//e
catch /E32:/
    echo "Sorry, the file is not saved."
endtry
let @/=_s
call cursor(l, c)
endfun
com! Dos2Unix keepjumps call Dos2unixFunction()

ในกรณีนี้เกิดอะไรขึ้นกับการใช้คำสั่งดั้งเดิมของ * NIX dos2unix? linux.die.net/man/1/dos2unix
Metagrapher

0

ฉันใช้เวลายามบ่ายไปกับ \ n ctrl-v 012 (ซึ่งทั้งคู่ส่ง null ให้ฉัน) & ทำงานในหัวข้อนี้จนกว่าฉันจะไปถึง metagrapher

\r ทำงานได้ดีสำหรับฉัน!

/),/s/),/)\r/g

หันบางสิ่งเช่นนี้:

blacklist-extra: i386 (0.4.1, 0.4.1 + nmu1), libmount1: i386 (2.20.1-5.1, 2.20.1 -5.2), libblkid1: i386 (2.20.1-5.1, 2.20.1-5.2) , libapt-pkg4.12: i386 (0.9.7.4, 0.9.7.5), nmap: i386 (6.00-0.1, 6.00-0.2), libsane-common: i386 (1.0.22-7.3,

เป็นอะไรเช่นนี้:

26 libwv-1.2-4: i386 (1.2.9-3 อัตโนมัติ)
27 openjdk-6-jre-headre: i386 (6b24-1.11.4-3 อัตโนมัติ
28 jed: i386 (0.99.19-2.1)

มายากล. ฉันซาบซึ้งอย่างยิ่ง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.